wiki:1c:coding

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:1c:coding [2021/03/23 03:51]
anton
wiki:1c:coding [2024/05/08 02:04] (текущий)
anton
Строка 1: Строка 1:
 ==== Кодинг ==== ==== Кодинг ====
 +=== Методика тестирования внешних обработок (дополнительные отчеты и обработки) ===
 +<code>
 +#Область Отладка 
 +
 +// Процедура - Запуск отладки
 +//
 +// Параметры:
 +//  АдресОбработки - "Y:\1c_support\КСК\итмс_ДополнительноСоглашение.epf" тип Строка 
 +//
 +Процедура ЗапускОтладки(АдресОбработки,МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыПечати)
 +
 + Если АдресОбработки <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда
 + Обр = ВнешниеОбработки.Создать(АдресОбработки);
 + Обр.Печать(МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыПечати);
 + КонецЕсли;
 +
 +КонецПроцедуры
 +
 +#КонецОбласти
 +
 +#Область Печать
 +
 +Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыПечати=Неопределено, ПараметрыВывода=Неопределено,СписокСотрудников = Неопределено) Экспорт
 +
 + // Отладка
 + //ЗапускОтладки("Y:\1c_support\КСК\итмс_ДополнительноСоглашение.epf",МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыПечати);
 +КонецПроцедуры
 +#КонецОбласти
 +</code>
 +=== Вывод ТЗ в печ форму ===
 +<code>
 +// Возвращает табличный документ на основании таблицы значений
 +//
 +// Параметры:
 +//  ДанныеВТабличныйДокумент - ТаблицаЗначений
 +//
 +&НаСервереБезКонтекста
 +Функция ДанныеТаблицыЗначенийВТабличныйДокумент(ДанныеВТабличныйДокумент)
 +
 + ТабличныйДокумент = Новый ТабличныйДокумент;
 + Построитель = Новый ПостроительОтчета;
 + Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДанныеВТабличныйДокумент);       
 + Построитель.Вывести(ТабличныйДокумент);
 +
 + Возврат ТабличныйДокумент;
 +
 +КонецФункции // ДанныеТаблицыЗначенийВТабличныйДокумент()
 +</code>
  
 === Изменение имени переменной в цикле === === Изменение имени переменной в цикле ===
Строка 466: Строка 514:
 КонецПроцедуры КонецПроцедуры
  
 +</code>
 +
 +=== Вывод реквизитов документа на форму  ===
 +<code>
 +         нРеквизиты = Новый Массив;
 + // Страница Заказ с сайта
 + ДобавитьЭлементНаФорму(ЭтаФорма.Элементы,"ЗаказССайта",Тип("ГруппаФормы"),ЭтаФорма.Элементы.ГруппаСтраницы,ВидГруппыФормы.Страница,,,"Заказ с сайта");
 +   
 + ТЗ_РеквизитовОбъекта = Новый ТаблицаЗначений;
 + ТЗ_РеквизитовОбъекта.Колонки.Добавить("Имя");
 + ТЗ_РеквизитовОбъекта.Колонки.Добавить("Путь");
 + ТЗ_РеквизитовОбъекта.Колонки.Добавить("Заголовок");
 +
 + Стр = ТЗ_РеквизитовОбъекта.Добавить();
 + Стр.Имя = "итмс_Сайт";
 + Стр.Путь = "Объект."+Стр.Имя;
 + Стр.Заголовок = "Заказ загружен с сайта";
 +
 + Стр = ТЗ_РеквизитовОбъекта.Добавить();
 + Стр.Имя = "итмс_ЗаказССайта";
 + Стр.Путь = "Объект."+Стр.Имя;
 + Стр.Заголовок = "Заказ с сайта";
 +
 + Для Каждого Реквизит Из ТЗ_РеквизитовОбъекта Цикл
 + ДобавитьЭлементНаФорму(ЭтаФорма.Элементы,
 +                        Реквизит.Имя,
 +                        Тип("ПолеФормы"),
 +    ЭтаФорма.Элементы.ЗаказССайта,
 +    ВидПоляФормы.ПолеВвода,
 +    Реквизит.Путь,,
 +    Реквизит.Заголовок);
 + КонецЦикла;
 + // начинаем вывод реквизитов формы (не созданы в конфигураторе как реквизиты объекта)
 + ДобавитьРеквизит("Фамилия",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Фамилия",,нРеквизиты);
 + ДобавитьРеквизит("Имя",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Имя",,нРеквизиты); 
 + ДобавитьРеквизит("Отчество",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Отчество",,нРеквизиты);
 + ДобавитьРеквизит("Телефон",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Телефон",,нРеквизиты); 
 + ДобавитьРеквизит("НомерЗаказаНаСайте",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Номер заказа на сайте",,нРеквизиты);
 + ДобавитьРеквизит("ИНН",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "ИНН",,нРеквизиты);
 + ЭтаФорма.ИзменитьРеквизиты(нРеквизиты);  
 + Для Каждого Реквизит Из нРеквизиты Цикл
 + ДобавитьЭлементНаФорму(ЭтаФорма.Элементы,
 +                        Реквизит.Имя,
 +                        Тип("ПолеФормы"),
 +    ЭтаФорма.Элементы.ЗаказССайта,
 +    ВидПоляФормы.ПолеВвода,
 +    Реквизит.Имя,,
 +    Реквизит.Заголовок);
 + КонецЦикла;
 +
 +
 +</code>
 +
 +=== Таблица значений в структуру  ===
 +<code>
 +&НаСервере
 +Процедура Команда1НаСервере()
 + ТЗ = Новый ТаблицаЗначений;
 + ТЗ.Колонки.Добавить("А");
 + ТЗ.Колонки.Добавить("Б");
 + ТЗ.Колонки.Добавить("В");
 + ТЗ.Колонки.Добавить("Г");
 + Стр = ТЗ.Добавить();
 + Стр.А = "оо";
 + Стр.Б = "о1о";
 + Стр.В = "о2";
 + Стр.Г = "о3";
 + ТестСтруктура = Новый Структура;
 + Для Каждого Кол Из ТЗ.Колонки Цикл
 + ТестСтруктура.Вставить(Кол.Имя,ТЗ[0][Кол.Имя]);
 + КонецЦикла;
 +КонецПроцедуры
 </code> </code>
  • wiki/1c/coding.1616460715.txt.gz
  • Последнее изменение: 2021/03/23 03:51
  • anton