Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Обработка выгрузки в csv. Как завершить работу после ее выполнения? Код в теме.

ABC BCA
читатель
офлайн
Дата регистрации: 04.10.2015
Сообщений: 26
Пост №1
 
07.05.2016 05:51

Знаю что с помощью процедуры призавершеннииработысистемы, но что-то заработался, не доходит. Помогите коллеги.



// Выполним запрос к справочнику Номенклатуры
// Получим Таблицу Значений
Функция ПолучитьНоменклатуру()
      Запрос = Новый Запрос;
      Запрос.Текст =
            "ВЫБРАТЬ //ПЕРВЫЕ 1000
            |      Номенклатура.Ссылка,
            |      Номенклатура.Код,
            | Номенклатура.Родитель,
            |      Номенклатура.Наименование
            |ИЗ
            |      Справочник.Номенклатура КАК Номенклатура";
      Результат = Запрос.Выполнить();
      ТаблицаЗначений = Результат.Выгрузить();
      возврат ТаблицаЗначений;
КонецФункции //      

// Создаем строку загоовков для CSV-файла
Функция СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
      //разделитель = "|";
      колонкиТЗ=ТаблицаЗначений.колонки;
      Для каждого колонка Из колонкиТЗ Цикл
            стрКолонки = "" + стрКолонки + колонка.Имя + разделитель ;
      КонецЦикла;
      Возврат стрКолонки;
КонецФункции

// Создаем текст CSV:
// текст заголовков и
// текст данных
Функция СоздатьДанныеCSV(ТаблицаЗначений,разделитель)
      
      текст="";
      для каждого запись из ТаблицаЗначений Цикл
            если текст="" тогда
                  текст=СоздатьЗаголовкиCSV(ТаблицаЗначений,разделитель)
                        + Символы.ПС;      
            КонецЕсли;      
                        
            сообщить(запись.Наименование);
            текст = текст + запись.Ссылка
                  + разделитель + запись.Код
                  + разделитель + запись.Родитель
                  + разделитель + запись.Наименование                  
                  + Символы.ПС;            
      КонецЦикла;
            
//сообщить(текст);
      Возврат текст;

КонецФункции //

// Запишем данные в файл
Функция ЗаписатьCSV(текст,имяФайла)            
      кодировка = КодировкаТекста.ANSI;
      
ТекстовыйФайлЗапись = Новый ЗаписьТекста(имяФайла,Кодировка);                  
      ТекстовыйФайлЗапись.ЗаписатьСтроку(текст);
      ТекстовыйФайлЗапись.Закрыть();      
      Возврат 0;

КонецФункции //

// Основная логика:
Функция CSV(имяФайлаCSV);
разделитель = "|";
      ТаблицаЗначений = ПолучитьНоменклатуру();
      текст = СоздатьДанныеCSV(ТаблицаЗначений,разделитель);
      ЗаписатьCSV(текст,имяФайлаCSV);

КонецФункции


CSV("C:\Temp\csv\my.csv");

ЗавершитьРаботуСистемы(1)

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №2
 
10.05.2016 11:13

Хотелось бы посмотреть как эта обработка "положит" компьютер при размере справочника номенклатуры в 10.000 элементов. Автору бы познакомиться с объектом ЗаписьТекста не помешало.

ABC BCA
читатель
офлайн
Дата регистрации: 04.10.2015
Сообщений: 26
Пост №3
 
17.05.2016 03:52

Да, все работает ..... ТОлько, вот как завершить не знаю...

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №4
 
17.05.2016 10:43

Как завершить, зависит от того как вы запускаете эту обработку.

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация