Это старая версия документа!
Кодинг
Изменение имени переменной в цикле
Функция ДобавитьСтрокиВТЗ(ТЗ,Строка,ТекстДок) стр = ТЗ.Добавить(); Для Каждого Колонка ИЗ ТЗ.Колонки Цикл Стр[Колонка.Имя] = СокрЛП(ТекстДок.ПолучитьСтроку(Строка)); Строка = Строка + 1; КонецЦикла; Возврат Строка КонецФункции
Запуск обработки из макета внешней обработки
- Добавляем внешнюю обработку для запуска как макет с типом «Внешняя компонента».
- В модуле обработки пишем функцию:
&НаСервере
Функция ПолучитьОбмен_Данными_XML_2_1_7() Экспорт
Обработка = ЭтотОбъект.ПолучитьМакет("EPF_Универсальный_Обмен_Данными_XML_2_1_7");
АдресОбработкиВХранилище = ПоместитьВоВременноеХранилище(Обработка);
Возврат АдресОбработкиВХранилище
КонецФункции
- На форме обработки создаем событие :«При открытии», В его обработчике пишем:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ИмяОбработки = ПодключитьВнешнююОбработку();
// Откроем форму подключенной внешней обработки
Форма = ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма.УправляемаяФорма");
//ЭтаФорма.Закрыть();
КонецПроцедуры
&НаСервере
Функция ПодключитьВнешнююОбработку()
Возврат ВнешниеОбработки.Подключить(РеквизитФормыВЗначение("Объект").ПолучитьОбмен_Данными_XML_2_1_7(), , Ложь);
КонецФункции
Разбивка строки по разделителю на подстроки
#Если ТолстыйКлиентОбычноеПриложение Тогда
Если Счетчик % 100 = 0 Тогда
Состояние("Загружается отчет № " + НомерОтчета + " с POS № " + ЛогНомерИзОтчета + ", строка " + Счетчик + "/" + ВсегоСтрок);
КонецЕсли;
#КонецЕсли
//Разделитель в этом случае ";"
Стр = СтрЗаменить(ФайлОтчета.ПолучитьСтроку(Счетчик), ";", Символы.ПС);
Дата = СтрПолучитьСтроку(Стр, 2);
Время = СтрПолучитьСтроку(Стр, 3);
НомерЧека = СтрПолучитьСтроку(Стр, 6);
Сумма = СтрПолучитьСтроку(Стр, 12);
Прибавляет Нужное количество рабочих дней к дате
Функция РабочихДнейСДаты(НачДата,КолвоДней) Экспорт
Перем РабочихДней, ОбычныхДней, ДеньНедели;
РабочихДней = 0; ОбычныхДней = 0;
Пока РабочихДней < Число(КолвоДней) Цикл
ОбычныхДней = ОбычныхДней+ 1;
// определим день недели
ДеньНедели=ДеньНедели(НачДата+(ОбычныхДней*86400));
// если не выходной, то прошел еще один рабочий день
Если ДеньНедели < 6 Тогда
РабочихДней=РабочихДней+1;
КонецЕсли;
КонецЦикла;
Возврат (НачДата + (РабочихДней*86400));
КонецФункции