wiki:1c:coding

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:1c:coding [2019/07/08 03:21]
anton РеквизитыДляПечати = ПодготовкаПечати(ВидДоговора); // Выводим Договор ИТС ДвоичныеДанные = ПолучитьИзВременногоХранилища(РеквизитыДляПечати.Договор_ИТС); ПутьКФайлуМакетаНаКлиенте = КаталогВременныхФайлов()+"contract_its.doc"; ДвоичныеДанные.Записать(Пут
wiki:1c:coding [2024/05/08 02:04] (текущий)
anton
Строка 1: Строка 1:
 ==== Кодинг ==== ==== Кодинг ====
 +=== Методика тестирования внешних обработок (дополнительные отчеты и обработки) ===
 +<code>
 +#Область Отладка 
 +
 +// Процедура - Запуск отладки
 +//
 +// Параметры:
 +//  АдресОбработки - "Y:\1c_support\КСК\итмс_ДополнительноСоглашение.epf" тип Строка 
 +//
 +Процедура ЗапускОтладки(АдресОбработки,МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыПечати)
 +
 + Если АдресОбработки <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда
 + Обр = ВнешниеОбработки.Создать(АдресОбработки);
 + Обр.Печать(МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыПечати);
 + КонецЕсли;
 +
 +КонецПроцедуры
 +
 +#КонецОбласти
 +
 +#Область Печать
 +
 +Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыПечати=Неопределено, ПараметрыВывода=Неопределено,СписокСотрудников = Неопределено) Экспорт
 +
 + // Отладка
 + //ЗапускОтладки("Y:\1c_support\КСК\итмс_ДополнительноСоглашение.epf",МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыПечати);
 +КонецПроцедуры
 +#КонецОбласти
 +</code>
 +=== Вывод ТЗ в печ форму ===
 +<code>
 +// Возвращает табличный документ на основании таблицы значений
 +//
 +// Параметры:
 +//  ДанныеВТабличныйДокумент - ТаблицаЗначений
 +//
 +&НаСервереБезКонтекста
 +Функция ДанныеТаблицыЗначенийВТабличныйДокумент(ДанныеВТабличныйДокумент)
 +
 + ТабличныйДокумент = Новый ТабличныйДокумент;
 + Построитель = Новый ПостроительОтчета;
 + Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДанныеВТабличныйДокумент);       
 + Построитель.Вывести(ТабличныйДокумент);
 +
 + Возврат ТабличныйДокумент;
 +
 +КонецФункции // ДанныеТаблицыЗначенийВТабличныйДокумент()
 +</code>
  
 === Изменение имени переменной в цикле === === Изменение имени переменной в цикле ===
Строка 410: Строка 458:
 </code> </code>
  
 +=== Изменение движений проведенного документа  ===
 +<code>
 +&НаСервере
 +Процедура Команда1НаСервере()
 + Запрос = Новый Запрос;
 + Запрос.Текст = 
 + "ВЫБРАТЬ
 + | ОперацияБух.Ссылка КАК Ссылка,
 + | ОперацияБух.Номер КАК Номер,
 + | ОперацияБух.Дата КАК Дата,
 + | ОперацияБух.Организация КАК Организация,
 + | ОперацияБух.Содержание КАК Содержание,
 + | ОперацияБух.ТиповаяОперация КАК ТиповаяОперация,
 + | ОперацияБух.СпособЗаполнения КАК СпособЗаполнения
 + |ИЗ
 + | Документ.ОперацияБух КАК ОперацияБух
 + |ГДЕ
 + | ОперацияБух.Дата МЕЖДУ &Дата1 И &Дата2";
 +
 + Запрос.УстановитьПараметр("Дата1", Дата('2020.01.01 00:00:00'));
 + Запрос.УстановитьПараметр("Дата2", Дата('2020.07.18 23:59:59'));
 +
 + РезультатЗапроса = Запрос.Выполнить();
 +
 + ВыборкаД = РезультатЗапроса.Выбрать();
 +
 + Пока ВыборкаД.Следующий() Цикл
 + // проверим что перед нами поступление
 + Если СтрНайти(ВыборкаД.Содержание,"Поступление ТМЦ") <> 0  И СтрНайти(ВыборкаД.Номер,"Ш") <> 0 Тогда
 + Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
 + Набор.Отбор.Регистратор.Установить(выборкаД.Ссылка);
 + Набор.Прочитать();
 + Инд = 0;
 + Для Каждого ДВ ИЗ Набор Цикл
 + Если ДВ.СчетКт = ПланыСчетов.Хозрасчетный.ТорговаяНаценкаНТТ Тогда
 + Набор.Удалить(Инд);
 + Набор.Записать(истина);
 + Сообщить(ДВ);
 + КонецЕсли;
 + Инд = Инд + 1;
 + КонецЦикла;
 + Иначе
 + Продолжить
 + КонецЕсли;
 +
 + КонецЦикла;
 +
 +
 +
 +КонецПроцедуры
 +
 +&НаКлиенте
 +Процедура Команда1(Команда)
 + Команда1НаСервере();
 +КонецПроцедуры
 +
 +</code>
 +
 +=== Вывод реквизитов документа на форму  ===
 +<code>
 +         нРеквизиты = Новый Массив;
 + // Страница Заказ с сайта
 + ДобавитьЭлементНаФорму(ЭтаФорма.Элементы,"ЗаказССайта",Тип("ГруппаФормы"),ЭтаФорма.Элементы.ГруппаСтраницы,ВидГруппыФормы.Страница,,,"Заказ с сайта");
 +   
 + ТЗ_РеквизитовОбъекта = Новый ТаблицаЗначений;
 + ТЗ_РеквизитовОбъекта.Колонки.Добавить("Имя");
 + ТЗ_РеквизитовОбъекта.Колонки.Добавить("Путь");
 + ТЗ_РеквизитовОбъекта.Колонки.Добавить("Заголовок");
 +
 + Стр = ТЗ_РеквизитовОбъекта.Добавить();
 + Стр.Имя = "итмс_Сайт";
 + Стр.Путь = "Объект."+Стр.Имя;
 + Стр.Заголовок = "Заказ загружен с сайта";
 +
 + Стр = ТЗ_РеквизитовОбъекта.Добавить();
 + Стр.Имя = "итмс_ЗаказССайта";
 + Стр.Путь = "Объект."+Стр.Имя;
 + Стр.Заголовок = "Заказ с сайта";
 +
 + Для Каждого Реквизит Из ТЗ_РеквизитовОбъекта Цикл
 + ДобавитьЭлементНаФорму(ЭтаФорма.Элементы,
 +                        Реквизит.Имя,
 +                        Тип("ПолеФормы"),
 +    ЭтаФорма.Элементы.ЗаказССайта,
 +    ВидПоляФормы.ПолеВвода,
 +    Реквизит.Путь,,
 +    Реквизит.Заголовок);
 + КонецЦикла;
 + // начинаем вывод реквизитов формы (не созданы в конфигураторе как реквизиты объекта)
 + ДобавитьРеквизит("Фамилия",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Фамилия",,нРеквизиты);
 + ДобавитьРеквизит("Имя",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Имя",,нРеквизиты); 
 + ДобавитьРеквизит("Отчество",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Отчество",,нРеквизиты);
 + ДобавитьРеквизит("Телефон",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Телефон",,нРеквизиты); 
 + ДобавитьРеквизит("НомерЗаказаНаСайте",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "Номер заказа на сайте",,нРеквизиты);
 + ДобавитьРеквизит("ИНН",
 + ПолучитьОписаниеТипа(Тип("Строка"),Новый КвалификаторыСтроки(60)),
 +      "ИНН",,нРеквизиты);
 + ЭтаФорма.ИзменитьРеквизиты(нРеквизиты);  
 + Для Каждого Реквизит Из нРеквизиты Цикл
 + ДобавитьЭлементНаФорму(ЭтаФорма.Элементы,
 +                        Реквизит.Имя,
 +                        Тип("ПолеФормы"),
 +    ЭтаФорма.Элементы.ЗаказССайта,
 +    ВидПоляФормы.ПолеВвода,
 +    Реквизит.Имя,,
 +    Реквизит.Заголовок);
 + КонецЦикла;
 +
 +
 +</code>
 +
 +=== Таблица значений в структуру  ===
 +<code>
 +&НаСервере
 +Процедура Команда1НаСервере()
 + ТЗ = Новый ТаблицаЗначений;
 + ТЗ.Колонки.Добавить("А");
 + ТЗ.Колонки.Добавить("Б");
 + ТЗ.Колонки.Добавить("В");
 + ТЗ.Колонки.Добавить("Г");
 + Стр = ТЗ.Добавить();
 + Стр.А = "оо";
 + Стр.Б = "о1о";
 + Стр.В = "о2";
 + Стр.Г = "о3";
 + ТестСтруктура = Новый Структура;
 + Для Каждого Кол Из ТЗ.Колонки Цикл
 + ТестСтруктура.Вставить(Кол.Имя,ТЗ[0][Кол.Имя]);
 + КонецЦикла;
 +КонецПроцедуры
 +</code>
  • wiki/1c/coding.1562545301.txt.gz
  • Последнее изменение: 2019/07/08 03:21
  • anton