1С FAQ для начинающего программиста

1 Отладка 1С не в файловом варианте
2 Сверхбыстрое удаление элементов справочника

 

Отладка 1С не в файловом варианте

   Очень часто в клиент-серверном варианте, у начинающих программистов 1С, возникат вопросы относительно отсутсвия останова в тексте модуля под тегом &НаСервере.

По умолчанию, при использовании клиент-серверного режима работы 1С-предприятия никакие серверные функции и процедуры не будут поддаваться пошаговой отладке. Система будет выполнять их «на сервере 1С 8.3″, такие процедуры не видны для клиентской машины. То есть, точки останова на сервере 1С не работают.

Исправляется это редактированием записи в реестре

  1. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent].
  2. Скорректировать ключ для ragent.exe , добавив «-debug».
  3. Пример редактирования: C:\Program Files (x86)\1cv82\8.2.18.109\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591  -debug -d «C:\Program Files (x86)\1cv82\srvinfo»

После правки перезапускаем сервер с новыми параметрами. Теперь программист 1с может отслеживать процедуры на сервере.

 


Сверхбыстрое удаление элементов справочника и других объектов конфигурации

//=====================================
&НаСервере
Процедура УдалитьНоменклатуруТестНаСервере()
    
Запрос = Новый Запрос( "ВЫБРАТЬ
                           |    НоменклатураТест.Ссылка
                           |ИЗ
                           |    Справочник.НоменклатураТест КАК НоменклатураТест"

    );    
Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
УдалитьОбъекты(Результат,,);  

КонецПроцедуры
//=====================================

.Процедура удаляет все элементы справочника НоменклатураТест без всяких проверок

// удаление помеченных объектов с контролем ссылочной целостности
Помеченные = НайтиПомеченныеНаУдаление();
Найденные = 0;
УдалитьОбъекты(Помеченные, Истина, Найденные);
Для каждого Ссылка из Найденные Цикл
    СтрСообщения = "Объект не удален: " + СокрЛП(Ссылка[0]);
    СтрСсылка = ", используется в " + СокрЛП(Ссылка[1]);
    Сообщить (СтрСообщения + СтрСсылка);
КонецЦикла;

 

Пример создания типизированых колонок в таблицу значений

    ТЗ.Колонки.Добавить("ИндексСортировки"		, Новый ОписаниеТипов("Число"));
	ТЗ.Колонки.Добавить("ИмяРаздела"		, Новый ОписаниеТипов("Строка"));
	ТЗ.Колонки.Добавить("ДатаКорр"			, Новый ОписаниеТипов("Дата"));
	ТЗ.Колонки.Добавить("БезусловноеУдаление"	, Новый ОписаниеТипов("Булево"));
	ТЗ.Колонки.Добавить("Номенклатура"		, Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
	ТЗ.Колонки.Добавить("ДанныеРаздела"		, Новый ОписаниеТипов("Структура"));
	// пример создания колонок "число" и "строка" с уточнением параметров:
	ТЗ.Колонки.Добавить("ПроцентВыполнения"		, Новый ОписаниеТипов("Число"	, Новый КвалификаторыЧисла(18, 2)));
	ТЗ.Колонки.Добавить("ИмяРаздела"		, Новый ОписаниеТипов("Строка"	, , Новый КвалификаторыСтроки(200, ДопустимаяДлина.Переменная)));
	ТЗ.Колонки.Добавить("ДатаСписаания"		, Новый ОписаниеТипов("Дата"	, , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));