Как добавить в выгрузку на сайт серии номенклатуры

1. user973244 23.05.18 23:16 Сейчас в теме
Уважаемые специалисты прошу вас если можно тыкните где можно найти пример как добавить через конфигуратор в документ выгрузки на сайт Серии номенклатуры которые бы соответстовали серийному номеру товара который выгружается. Очень прошу помогите советом уже вторую неделю бьюсь над данным решением.
По теме из базы знаний
Найденные решения
22. VitalySh 29.05.18 14:19 Сейчас в теме
(21)
Замените процедуру в модуле обработки ОбменССайтом.
Но обратите внимание, что сайт должен обрабатывать эти поля. Если сайт про них ничего не знает, то ничего и не получится.

Процедура ЗаполнитьСписокЗначенийОсновныхРеквизитовТовара(СписокЗначенийCML, Товар)
	
	ИдТовара = СформироватьИдентификаторТовара(Товар.НоменклатураСсылка, Товар.ХарактеристикаСсылка);
	
	ДобавитьУзелCML(СписокЗначенийCML, "Ид"				   , ИдТовара); 
	ДобавитьУзелCML(СписокЗначенийCML, "Штрихкод"		   , Товар.Штрихкод);
	ДобавитьУзелCML(СписокЗначенийCML, "Артикул"		   , Товар.НоменклатураСсылка.Артикул);
	ДобавитьУзелCML(СписокЗначенийCML, "Наименование"	   , ФорматНаименованияДляCML(Товар.НоменклатураСсылка.Наименование));
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	СерииНоменклатуры.Наименование,
	               |	СерииНоменклатуры.НомерГТД.Код КАК Код
	               |ИЗ
	               |	Справочник.СерииНоменклатуры КАК СерииНоменклатуры
	               |ГДЕ
	               |	СерииНоменклатуры.Владелец = &Владелец
	               |	И НЕ СерииНоменклатуры.ПометкаУдаления";
	Запрос.УстановитьПараметр("Владелец",Товар.НоменклатураСсылка);
	Результат = Запрос.Выполнить().Выбрать();
	Пока Результат.Следующий() Цикл
		//тут оставьте то, что вам надо
		ДобавитьУзелCML(СписокЗначенийCML, "НаименованиеСерии"	   , ФорматНаименованияДляCML(Результат.Наименование));
		ДобавитьУзелCML(СписокЗначенийCML, "НомерГТД"	   , ФорматНаименованияДляCML(Результат.Код));
		//--
	КонецЦикла;
	ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "БазоваяЕдиница");	
	ДобавитьАтрибутCML(СписокЗначенийCML, "Код"					   , Товар.ЕдиницаИзмерения.Код);
	
	Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.НаименованиеПолное) Тогда
		ДобавитьАтрибутCML(СписокЗначенийCML, "НаименованиеПолное"	   , Товар.ЕдиницаИзмерения.НаименованиеПолное);
	КонецЕсли;
	
	Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.МеждународноеСокращение) Тогда
		ДобавитьАтрибутCML(СписокЗначенийCML, "МеждународноеСокращение", Лев(Товар.ЕдиницаИзмерения.МеждународноеСокращение, 3));
	КонецЕсли;
	
	ДобавитьТекстCML(СписокЗначенийCML, Строка(Товар.ЕдиницаИзмерения));
	ДобавитьКонецЭлементаCML(СписокЗначенийCML);	
	
КонецПроцедуры

Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. kolya_tlt 86 24.05.18 09:19 Сейчас в теме
(1) через запятую новое поле укажите и все
6. progr-2008 118 25.05.18 00:16 Сейчас в теме
(1)
Серии номенклатуры которые бы соответстовали серийному номеру товара


В УТ 1.2 для РФ серии номенклатуры и серийные номера - это два отдельных справочника, причем, у каждого из этих справочников есть Владелец - это справочник Номенклатура. Т.е. серийные номера не подчиняются справочнику Серии номенклатуры.
7. progr-2008 118 25.05.18 00:30 Сейчас в теме
(1) В данном случае надо только серии номенклатуры выгружать? Без серийных номеров?

Или с серии с серийными номерами?

Зависит от того, как организован учет.
2. dchumak 42 24.05.18 04:31 Сейчас в теме
1. Какая конфигурация?
2. Вообще теоретически если конфигурация УТ 11, то серии хранятся в регистре накопления "Товары на складах". Сответственно, нужно выбирать остатки по нему с детализацией по номенклатуре и серии.
3. В УТ 10.3 серия номенклатуры хранится также в регистре "Свободные остатки".
3. user973244 24.05.18 08:58 Сейчас в теме
Увы конфигурация очень древняя
"Управление торговым предприятием для Украины", редакция 1.2. , 1С:Предприятие 8.3 (8.3.9.1818)
5. user973244 24.05.18 11:41 Сейчас в теме
Если можно, по подробнее
8. user973244 25.05.18 09:42 Сейчас в теме
Как правильно прописать к примеру как показано на изображении вместо "Код".Пытаюсь написать Номенклатура.КодСерииНомнклатуры но выдает ошибку.

При проверке корректности поля 1С возникла ошибка. Указать это поле нельзя.

Используется модуль 6.5.0.1 иза того что очень древняя Ут обновить не могу. Или же всетаки нужно делать правки в конфигураторе что бы добиться желаемого
Прикрепленные файлы:
10. progr-2008 118 25.05.18 11:11 Сейчас в теме
(8)В реквизите справочника Номенклатура есть серия?
9. user973244 25.05.18 10:45 Сейчас в теме
Конфигурация
"Управление торговым предприятием для Украины", редакция 1.2.
Разработка конфигурации: "ABBYY Ukraine", 2007-2017 (1.2.41.1) (http://1c.ua/v8/RegionalSolutions_UA_UTP.php)
Copyright © ДП "Еврософтпром", 2007-2017. Все права защищены
(http://www.1c.ua)
11. user973244 25.05.18 12:16 Сейчас в теме
(10)
В реквизите справочника Номенклатура есть серия

Если я вас правильно понял,то помойму нет выглядит вот так
Прикрепленные файлы:
23. progr-2008 118 29.05.18 15:18 Сейчас в теме
(11)Тогда (8) принципиально не получится.
Справочник Номенклатура - Владелец серии, а серия реквизит номенклатуры.
24. progr-2008 118 30.05.18 11:12 Сейчас в теме
(23)опечатка - надо так:
Справочник Номенклатура - Владелец серии, а НЕ серия реквизит номенклатуры.
12. user973244 26.05.18 01:09 Сейчас в теме
Нашел процедуру подскажите как правильно прописать что бы в артикул прописывался КОД СЕРИИ НОМЕНКЛАТУРЫ

Процедура ЗаполнитьСписокЗначенийОсновныхРеквизитовТовара(СписокЗначенийCML, Товар)

ИдТовара = СформироватьИдентификаторТовара(Товар.НоменклатураСсылка, Товар.ХарактеристикаСсылка);

ДобавитьУзелCML(СписокЗначенийCML, "Ид" , ИдТовара);
ДобавитьУзелCML(СписокЗначенийCML, "Штрихкод" , Товар.Штрихкод);
ДобавитьУзелCML(СписокЗначенийCML, "Артикул" , Товар.НоменклатураСсылка.Артикул);
ДобавитьУзелCML(СписокЗначенийCML, "Наименование" , ФорматНаименованияДляCML(Товар.НоменклатураСсылка.Наименование));

ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "БазоваяЕдиница");
ДобавитьАтрибутCML(СписокЗначенийCML, "Код" , Товар.ЕдиницаИзмерения.Код);

Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.НаименованиеПолное) Тогда
ДобавитьАтрибутCML(СписокЗначенийCML, "НаименованиеПолное" , Товар.ЕдиницаИзмерения.НаименованиеПолное);
КонецЕсли;

Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.МеждународноеСокращение) Тогда
ДобавитьАтрибутCML(СписокЗначенийCML, "МеждународноеСокращение", Лев(Товар.ЕдиницаИзмерения.МеждународноеСокращение, 3));
КонецЕсли;

ДобавитьТекстCML(СписокЗначенийCML, Строка(Товар.ЕдиницаИзмерения));
ДобавитьКонецЭлементаCML(СписокЗначенийCML);

КонецПроцедуры
Показать
Прикрепленные файлы:
13. user973244 26.05.18 01:28 Сейчас в теме
Люди добрые помогите пожалуйста решить данную головоломку
14. user973244 26.05.18 01:39 Сейчас в теме
Код выгрузить получаеться вот так

ДобавитьУзелCML(СписокЗначенийCML, "Ид" , ИдТовара);
ДобавитьУзелCML(СписокЗначенийCML, "Штрихкод" , Товар.Штрихкод);
ДобавитьУзелCML(СписокЗначенийCML, "Артикул" , Товар.НоменклатураСсылка.Код);

//ДобавитьУзелCML(СписокЗначенийCML, "Артикул" , Товар.НоменклатураСсылка.Артикул);
ДобавитьУзелCML(СписокЗначенийCML, "Наименование" , ФорматНаименованияДляCML(Товар.НоменклатураСсылка.Наименование));


а именно сам КОД серии номенклатуры нет, ума не приложу, просто на скрине выше видно что товар в базе имеет серийные номера и когда выгружаеться на сайт они прописуються в опции,хотя имеют разную цену и начинаються проблемы , а что бы как то разделить товара на разные карточки на сайте даже если у них одинаковое наименование и описание наименование Решил привязаться к коду серии номенклатуры,и тем самым как я понимаю, если уникальный код серии номенклатуры пропишеться в артикул, то сайт начнет воспринимать каждый товар как отдельную позицию
15. user973244 26.05.18 09:59 Сейчас в теме
Напишу как я понимаю
идея есть, но не хватает знаний как правильно реализовать и прописать



Делаем запрос

Получаем количество серий

Делаем цикл

Находим нужный нам код серии который соответствует серийному номеру товара и добовляем его в выгрузку
16. user973244 26.05.18 23:59 Сейчас в теме
17. VitalySh 27.05.18 06:21 Сейчас в теме
В код который выше добавьте запрос по сериям данной номенклатуры и в цикле выполняйте
ДобавитьУзелCML(СписокЗначенийCML, "Серия"	, РезультатЗапрос.Серия.Код); 

Только надо убедиться, что сайт будет смотреть этот тэг. Либо посмотреть название тэга, который точно сайт обработает.
Почему в цикле делать. У товара может быть несколько серий, соответственно будет несколько серий при выгрузке.
18. user973244 27.05.18 08:55 Сейчас в теме
(17)
ДобавитьУзелCML(СписокЗначенийCML, "Серия" , РезультатЗапрос.Серия.Код);


Выдает вот такую ошибку

{Обработка.ОбменССайтом.МодульОбъекта(413,50)}: Переменная не определена (РезультатЗапрос)
ДобавитьУзелCML(СписокЗначенийCML, "Серия" , <<?>>РезультатЗапрос.Серия.Код); (Проверка: Толстый клиент (обычное приложение))

Добавил вот так на скрине
Прикрепленные файлы:
20. VitalySh 27.05.18 19:22 Сейчас в теме
(18) Так конечно ошибка. Запрос то выше сделайте.
19. user973244 27.05.18 09:41 Сейчас в теме
(17) В фале прикрепил обработку ОбменССайтом ,делаю как вы написали но выдает постоянно ошибку,если вам будет не сложно посмотрите пожалуйста что я делаю не так, очень буду вам благодарен
Прикрепленные файлы:
Новый текстовый документ (2).txt
21. user973244 27.05.18 21:29 Сейчас в теме
Уважаемые Гуру ну для вас же это 5 мин дела,очень прошу помогите понять как правильно прописать
22. VitalySh 29.05.18 14:19 Сейчас в теме
(21)
Замените процедуру в модуле обработки ОбменССайтом.
Но обратите внимание, что сайт должен обрабатывать эти поля. Если сайт про них ничего не знает, то ничего и не получится.

Процедура ЗаполнитьСписокЗначенийОсновныхРеквизитовТовара(СписокЗначенийCML, Товар)
	
	ИдТовара = СформироватьИдентификаторТовара(Товар.НоменклатураСсылка, Товар.ХарактеристикаСсылка);
	
	ДобавитьУзелCML(СписокЗначенийCML, "Ид"				   , ИдТовара); 
	ДобавитьУзелCML(СписокЗначенийCML, "Штрихкод"		   , Товар.Штрихкод);
	ДобавитьУзелCML(СписокЗначенийCML, "Артикул"		   , Товар.НоменклатураСсылка.Артикул);
	ДобавитьУзелCML(СписокЗначенийCML, "Наименование"	   , ФорматНаименованияДляCML(Товар.НоменклатураСсылка.Наименование));
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	СерииНоменклатуры.Наименование,
	               |	СерииНоменклатуры.НомерГТД.Код КАК Код
	               |ИЗ
	               |	Справочник.СерииНоменклатуры КАК СерииНоменклатуры
	               |ГДЕ
	               |	СерииНоменклатуры.Владелец = &Владелец
	               |	И НЕ СерииНоменклатуры.ПометкаУдаления";
	Запрос.УстановитьПараметр("Владелец",Товар.НоменклатураСсылка);
	Результат = Запрос.Выполнить().Выбрать();
	Пока Результат.Следующий() Цикл
		//тут оставьте то, что вам надо
		ДобавитьУзелCML(СписокЗначенийCML, "НаименованиеСерии"	   , ФорматНаименованияДляCML(Результат.Наименование));
		ДобавитьУзелCML(СписокЗначенийCML, "НомерГТД"	   , ФорматНаименованияДляCML(Результат.Код));
		//--
	КонецЦикла;
	ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "БазоваяЕдиница");	
	ДобавитьАтрибутCML(СписокЗначенийCML, "Код"					   , Товар.ЕдиницаИзмерения.Код);
	
	Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.НаименованиеПолное) Тогда
		ДобавитьАтрибутCML(СписокЗначенийCML, "НаименованиеПолное"	   , Товар.ЕдиницаИзмерения.НаименованиеПолное);
	КонецЕсли;
	
	Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.МеждународноеСокращение) Тогда
		ДобавитьАтрибутCML(СписокЗначенийCML, "МеждународноеСокращение", Лев(Товар.ЕдиницаИзмерения.МеждународноеСокращение, 3));
	КонецЕсли;
	
	ДобавитьТекстCML(СписокЗначенийCML, Строка(Товар.ЕдиницаИзмерения));
	ДобавитьКонецЭлементаCML(СписокЗначенийCML);	
	
КонецПроцедуры

Показать
25. user973244 03.06.18 15:06 Сейчас в теме
(22)
Процедура ЗаполнитьСписокЗначенийОсновныхРеквизитовТовара(СписокЗначенийCML, Товар)

ИдТовара = СформироватьИдентификаторТовара(Товар.НоменклатураСсылка, Товар.ХарактеристикаСсылка);

ДобавитьУзелCML(СписокЗначенийCML, "Ид" , ИдТовара);
ДобавитьУзелCML(СписокЗначенийCML, "Штрихкод" , Товар.Штрихкод);
ДобавитьУзелCML(СписокЗначенийCML, "Артикул" , Товар.НоменклатураСсылка.Артикул);
ДобавитьУзелCML(СписокЗначенийCML, "Наименование" , ФорматНаименованияДляCML(Товар.НоменклатураСсылка.Наименование));

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СерииНоменклатуры.Наименование,
| СерииНоменклатуры.НомерГТД.Код КАК Код
|ИЗ
| Справочник.СерииНоменклатуры КАК СерииНоменклатуры
|ГДЕ
| СерииНоменклатуры.Владелец = &Владелец
| И НЕ СерииНоменклатуры.ПометкаУдаления";
Запрос.УстановитьПараметр("Владелец",Товар.НоменклатураСсылка);
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
//тут оставьте то, что вам надо
ДобавитьУзелCML(СписокЗначенийCML, "НаименованиеСерии" , ФорматНаименованияДляCML(Результат.Наименование));
ДобавитьУзелCML(СписокЗначенийCML, "НомерГТД" , ФорматНаименованияДляCML(Результат.Код));
//--
КонецЦикла;
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "БазоваяЕдиница");
ДобавитьАтрибутCML(СписокЗначенийCML, "Код" , Товар.ЕдиницаИзмерения.Код);

Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.НаименованиеПолное) Тогда
ДобавитьАтрибутCML(СписокЗначенийCML, "НаименованиеПолное" , Товар.ЕдиницаИзмерения.НаименованиеПолное);
КонецЕсли;

Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.МеждународноеСокращение) Тогда
ДобавитьАтрибутCML(СписокЗначенийCML, "МеждународноеСокращение", Лев(Товар.ЕдиницаИзмерения.МеждународноеСокращение, 3));
КонецЕсли;

ДобавитьТекстCML(СписокЗначенийCML, Строка(Товар.ЕдиницаИзмерения));
ДобавитьКонецЭлементаCML(СписокЗначенийCML);

КонецПроцедуры
Показать


Увы вот такая ошибка при выгрузке

{Обработка.ОбменССайтом.МодульОбъекта(426)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить().Выбрать();
по причине:
{(3, 23)}: Поле не найдено "СерииНоменклатуры.НомерГТД.Код"
СерииНоменклатуры.<<?>>НомерГТД.Код КАК Код
26. user705522_constantin_h 35 03.06.18 15:32 Сейчас в теме
(25)Покажите реквизиты справочника СерииНоменклатуры.
27. user973244 03.06.18 15:47 Сейчас в теме
УбралНомерГТД. из СерииНоменклатуры.НомерГТД.Код КАК Код и оставил СерииНоменклатуры.Код

Ошибка ушла но теперь в выгрузке показываються все серии что есть у номенклатуры ,а не те которые есть тоесть которые соответствуют остатку
28. user705522_constantin_h 35 03.06.18 15:57 Сейчас в теме
(27)Может так:
    Запрос.Текст = "ВЫБРАТЬ
                   |    СерииНоменклатуры.Наименование,
                   |    СерииНоменклатуры.НомерГТД.Код КАК Код
                   |ИЗ
                   |    Справочник.СерииНоменклатуры КАК СерииНоменклатуры
                   |ГДЕ
                   |    СерииНоменклатуры.ВидНоменклатуры = &ВидНоменклатуры
                   |    И НЕ СерииНоменклатуры.ПометкаУдаления";
    Запрос.УстановитьПараметр("ВидНоменклатуры",Товар.ВидНоменклатуры);
Показать
29. VitalySh 04.06.18 12:54 Сейчас в теме
(27) Надо делать запрос по регистру ТоварыНаСкладах
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот