Имя: Пароль:
1C
1С v8
Выгрузка наименований и штрих-кодов товаров в ТХТ
0 lyapkoandy13
 
21.11.15
23:25
Доброго времени суток! Прошу помочь с одной проблемкой. Есть 1С версии 8.3, конфигурация "Управление торговым предприятием для Украины", редакция 1.2.
Мне нужно выгрузить коды, наименования и штрих-коды всей номенклатуры. Я начал писать обработку, вот что пока вышло:

Текст = Новый ТекстовыйДокумент;
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
  Текст.ДобавитьСтроку(""+Выборка.Наименование+";"+Выборка.Код);
КонецЦикла;
Текст.Записать("C://folder/1.txt");

Проблема в том, что я не знаю как обратится к штрих-коду текущего элемента справочника. Помогите, кому не сложно.
1 Garykom
 
гуру
21.11.15
23:35
О_О
2 User_Agronom
 
21.11.15
23:42
(0) Штрихкоды, наверное, в отдельном регистре. Тоды только запросом. (Извращенские варианты с кучей циклов только для профессионалов;))
3 Garykom
 
гуру
21.11.15
23:43
(2) зачем куча циклов? когда можно один цикл по ШК и просто нужную номенклатуру то поиском ;)
4 User_Agronom
 
21.11.15
23:45
(3) Мсье знает толк в извращениях;)
Мне как-то ЛЕВОЕ СОЕДИНЕНИЕ проще наваять.
5 Garykom
 
гуру
21.11.15
23:51
(4) а классика жанра в виде запроса в цикле?
цикл берем из (0) а запрос поиском ищем "1с запрос получить штрих код номенклатуры"
6 User_Agronom
 
22.11.15
00:04
(5) Это классика извращенца)
7 Garykom
 
гуру
22.11.15
00:08
(6) нее... самый смак это найти готовый код... причем внутри базы...

ЗЫ пошерстить в "не в конфигураторе" раньше бы сказал меню "Обмен"
8 lyapkoandy13
 
22.11.15
00:19
Что насчет такого?

Текст = Новый ТекстовыйДокумент;
Выборка = РегистрыСведений.Штрихкоды.Выбрать();
Пока Выборка.Следующий() Цикл
  Текст.ДобавитьСтроку(""+Выборка.Владелец+";"+Выборка.Штрихкод+";"+Выборка.Владелец.Код);
КонецЦикла;
Текст.Записать("C://linux_folder/1.txt");
9 Garykom
 
гуру
22.11.15
00:21
(8) нескромный вопрос, а Вам зачем?
10 lyapkoandy13
 
22.11.15
00:34
Учусь программировать в 1С, я пока 0-левой, сейчас запросы осваиваю, зашел в тупик и решил спросить, да и узнать много интересного можно от умных людей, разные методы решений. Ну по крайней мере, я так думаю ;)
11 Web00001
 
22.11.15
04:45
(10)http://wiki-1c.ru/doku.php/1c:база:запросы много бу коф, но попробуй прочитать вдумчиво.
12 Горогуля
 
22.11.15
07:44
как насчёт Выборка=Запрос.Выполнить().Выбрать()?
13 palpetrovich
 
22.11.15
08:47
(8)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    Штрихкоды.Штрихкод,
|    Штрихкоды.Владелец
|ИЗ
|    РегистрСведений.Штрихкоды КАК Штрихкоды
|ГДЕ
|    ТИПЗНАЧЕНИЯ(Штрихкоды.Владелец) = ТИП(Справочник.Номенклатура)";    
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
    Текст.ДобавитьСтроку(""+Выборка.Владелец+";"+Выборка.Штрихкод+";"+Выборка.Владелец.Код);
КонецЦикла;
14 Горогуля
 
22.11.15
08:55
(13) ССЫЛКА по идее быстрее, она не вычисляет значение слева и значение справа
15 palpetrovich
 
22.11.15
09:04
(14) не думаю что скорось здесь имеет какое-то значение :)
16 Горогуля
 
22.11.15
09:08
(15) да конечно. но поговорить? ;)
17 User_Agronom
 
22.11.15
10:04
Самый быстрый вариант:

Выбрать
Номенклатура.Код,
Номенклатура.Наименование,
Штрихкоды.Штрихкод
из Справочник.Номенклатура КАК Номенклатура
левое соединение
РегистрСведений.Штрихкоды КАК Штрихкод
по Номенклатура.Ссылка = Штрихкод.Владелец.
18 lyapkoandy13
 
22.11.15
11:49
Всем большое спасибо, будем развиваться;)