solotony
@solotony
покоряю пик Балмера

Как выгрузить ассортимент с GUID из 1С?

есть 1С:Предприятие 8.3 (8.3.10.2168)
Управление торговлей, редакция 11 (11.3.4.228)

мне надо вытащить оттуда Список номенклатуры с GUID-ами. Как это сделать ?
  • Вопрос задан
  • 2717 просмотров
Решения вопроса 1
solotony
@solotony Автор вопроса
покоряю пик Балмера
В общем проще оказалось сваять обработку, взяв за основу выгрузку из инета

Кому потребуется - пользуйтесь
https://vk.com/solotony?w=wall399047259_51%2Fall

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

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

// Создаем текст CSV:
// текст заголовков и 
// текст данных
Функция СоздатьДанныеCSV(ТаблицаЗначений,разделитель)

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

        сообщить(запись.Наименование);
        текст = текст  + запись.Ссылка.УникальныйИдентификатор()
            + разделитель + запись.Код
            + разделитель + запись.Родитель
            + разделитель + запись.Наименование             
            + Символы.ПС;        
    КонецЦикла;

        //сообщить(текст);
    Возврат текст;

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

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

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

КонецФункции // ЗаписатьCSV()

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

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


// Начало 
ВыгрузитьВCSV("C:\work\my.csv");
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы