Обработка выгрузки в csv. Как завершить работу после ее выполнения? Код в теме.
07.05.2016
05:51
#1
Знаю что с помощью процедуры призавершеннииработысистемы, но что-то заработался, не доходит. Помогите коллеги.
// Выполним запрос к справочнику Номенклатуры
// Получим Таблицу Значений
Функция ПолучитьНоменклатуру()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ //ПЕРВЫЕ 1000
| Номенклатура.Ссылка,
| Номенклатура.Код,
| Номенклатура.Родитель,
| Номенклатура.Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
Результат = Запрос.Выполнить();
ТаблицаЗначений = Результат.Выгрузить();
возврат ТаблицаЗначений;
КонецФункции //
// Создаем строку загоовков для CSV-файла
Функция СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
//разделитель = "|";
колонкиТЗ=ТаблицаЗначений.колонки;
Для каждого колонка Из колонкиТЗ Цикл
стрКолонки = "" + стрКолонки + колонка.Имя + разделитель ;
КонецЦикла;
Возврат стрКолонки;
КонецФункции
// Создаем текст CSV:
// текст заголовков и
// текст данных
Функция СоздатьДанныеCSV(ТаблицаЗначений,разделитель)
текст="";
для каждого запись из ТаблицаЗначений Цикл
если текст="" тогда
текст=СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
+ Символы.ПС;
КонецЕсли;
сообщить(запись.Наименование);
текст = текст + запись.Ссылка
+ разделитель + запись.Код
+ разделитель + запись.Родитель
+ разделитель + запись.Наименование
+ Символы.ПС;
КонецЦикла;
//сообщить(текст);
Возврат текст;
КонецФункции //
// Запишем данные в файл
Функция ЗаписатьCSV(текст,имяФайла)
кодировка = КодировкаТекста.ANSI;
ТекстовыйФайлЗапись = Новый ЗаписьТекста(имяФайла,Кодировка);
ТекстовыйФайлЗапись.ЗаписатьСтроку(текст);
ТекстовыйФайлЗапись.Закрыть();
Возврат 0;
КонецФункции //
// Основная логика:
Функция CSV(имяФайлаCSV);
разделитель = "|";
ТаблицаЗначений = ПолучитьНоменклатуру();
текст = СоздатьДанныеCSV(ТаблицаЗначений,разделитель);
ЗаписатьCSV(текст,имяФайлаCSV);
КонецФункции
CSV("C:\Temp\csv\my.csv");
ЗавершитьРаботуСистемы(1)
// Выполним запрос к справочнику Номенклатуры
// Получим Таблицу Значений
Функция ПолучитьНоменклатуру()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ //ПЕРВЫЕ 1000
| Номенклатура.Ссылка,
| Номенклатура.Код,
| Номенклатура.Родитель,
| Номенклатура.Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
Результат = Запрос.Выполнить();
ТаблицаЗначений = Результат.Выгрузить();
возврат ТаблицаЗначений;
КонецФункции //
// Создаем строку загоовков для CSV-файла
Функция СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
//разделитель = "|";
колонкиТЗ=ТаблицаЗначений.колонки;
Для каждого колонка Из колонкиТЗ Цикл
стрКолонки = "" + стрКолонки + колонка.Имя + разделитель ;
КонецЦикла;
Возврат стрКолонки;
КонецФункции
// Создаем текст CSV:
// текст заголовков и
// текст данных
Функция СоздатьДанныеCSV(ТаблицаЗначений,разделитель)
текст="";
для каждого запись из ТаблицаЗначений Цикл
если текст="" тогда
текст=СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
+ Символы.ПС;
КонецЕсли;
сообщить(запись.Наименование);
текст = текст + запись.Ссылка
+ разделитель + запись.Код
+ разделитель + запись.Родитель
+ разделитель + запись.Наименование
+ Символы.ПС;
КонецЦикла;
//сообщить(текст);
Возврат текст;
КонецФункции //
// Запишем данные в файл
Функция ЗаписатьCSV(текст,имяФайла)
кодировка = КодировкаТекста.ANSI;
ТекстовыйФайлЗапись = Новый ЗаписьТекста(имяФайла,Кодировка);
ТекстовыйФайлЗапись.ЗаписатьСтроку(текст);
ТекстовыйФайлЗапись.Закрыть();
Возврат 0;
КонецФункции //
// Основная логика:
Функция CSV(имяФайлаCSV);
разделитель = "|";
ТаблицаЗначений = ПолучитьНоменклатуру();
текст = СоздатьДанныеCSV(ТаблицаЗначений,разделитель);
ЗаписатьCSV(текст,имяФайлаCSV);
КонецФункции
CSV("C:\Temp\csv\my.csv");
ЗавершитьРаботуСистемы(1)
РСВ-1 Раздел 2.1в печатной форме "Отпуск без сохранения з/п" задваивается количество календарных дней
Читают тему
(гостей: 1)