Уважаемые специалисты прошу вас если можно тыкните где можно найти пример как добавить через конфигуратор в документ выгрузки на сайт Серии номенклатуры которые бы соответстовали серийному номеру товара который выгружается. Очень прошу помогите советом уже вторую неделю бьюсь над данным решением.
(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);
КонецПроцедуры
Серии номенклатуры которые бы соответстовали серийному номеру товара
В УТ 1.2 для РФ серии номенклатуры и серийные номера - это два отдельных справочника, причем, у каждого из этих справочников есть Владелец - это справочник Номенклатура. Т.е. серийные номера не подчиняются справочнику Серии номенклатуры.
1. Какая конфигурация?
2. Вообще теоретически если конфигурация УТ 11, то серии хранятся в регистре накопления "Товары на складах". Сответственно, нужно выбирать остатки по нему с детализацией по номенклатуре и серии.
3. В УТ 10.3 серия номенклатуры хранится также в регистре "Свободные остатки".
Как правильно прописать к примеру как показано на изображении вместо "Код".Пытаюсь написать Номенклатура.КодСерииНомнклатуры но выдает ошибку.
При проверке корректности поля 1С возникла ошибка. Указать это поле нельзя.
Используется модуль 6.5.0.1 иза того что очень древняя Ут обновить не могу. Или же всетаки нужно делать правки в конфигураторе что бы добиться желаемого
Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.НаименованиеПолное) Тогда
ДобавитьАтрибутCML(СписокЗначенийCML, "НаименованиеПолное" , Товар.ЕдиницаИзмерения.НаименованиеПолное);
КонецЕсли;
Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.МеждународноеСокращение) Тогда
ДобавитьАтрибутCML(СписокЗначенийCML, "МеждународноеСокращение", Лев(Товар.ЕдиницаИзмерения.МеждународноеСокращение, 3));
КонецЕсли;
а именно сам КОД серии номенклатуры нет, ума не приложу, просто на скрине выше видно что товар в базе имеет серийные номера и когда выгружаеться на сайт они прописуються в опции,хотя имеют разную цену и начинаються проблемы , а что бы как то разделить товара на разные карточки на сайте даже если у них одинаковое наименование и описание наименование Решил привязаться к коду серии номенклатуры,и тем самым как я понимаю, если уникальный код серии номенклатуры пропишеться в артикул, то сайт начнет воспринимать каждый товар как отдельную позицию
Только надо убедиться, что сайт будет смотреть этот тэг. Либо посмотреть название тэга, который точно сайт обработает.
Почему в цикле делать. У товара может быть несколько серий, соответственно будет несколько серий при выгрузке.
(17) В фале прикрепил обработку ОбменССайтом ,делаю как вы написали но выдает постоянно ошибку,если вам будет не сложно посмотрите пожалуйста что я делаю не так, очень буду вам благодарен
(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);
КонецПроцедуры
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СерииНоменклатуры.Наименование,
| СерииНоменклатуры.НомерГТД.Код КАК Код
|ИЗ
| Справочник.СерииНоменклатуры КАК СерииНоменклатуры
|ГДЕ
| СерииНоменклатуры.Владелец = &Владелец
| И НЕ СерииНоменклатуры.ПометкаУдаления";
Запрос.УстановитьПараметр("Владелец",Товар.НоменклатураСсылка);
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
//тут оставьте то, что вам надо
ДобавитьУзелCML(СписокЗначенийCML, "НаименованиеСерии" , ФорматНаименованияДляCML(Результат.Наименование));
ДобавитьУзелCML(СписокЗначенийCML, "НомерГТД" , ФорматНаименованияДляCML(Результат.Код));
//--
КонецЦикла;
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "БазоваяЕдиница");
ДобавитьАтрибутCML(СписокЗначенийCML, "Код" , Товар.ЕдиницаИзмерения.Код);
Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.НаименованиеПолное) Тогда
ДобавитьАтрибутCML(СписокЗначенийCML, "НаименованиеПолное" , Товар.ЕдиницаИзмерения.НаименованиеПолное);
КонецЕсли;
Если ЗначениеЗаполнено(Товар.ЕдиницаИзмерения.МеждународноеСокращение) Тогда
ДобавитьАтрибутCML(СписокЗначенийCML, "МеждународноеСокращение", Лев(Товар.ЕдиницаИзмерения.МеждународноеСокращение, 3));
КонецЕсли;
{Обработка.ОбменССайтом.МодульОбъекта(426)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить().Выбрать();
по причине:
{(3, 23)}: Поле не найдено "СерииНоменклатуры.НомерГТД.Код"
СерииНоменклатуры.<<?>>НомерГТД.Код КАК Код
Запрос.Текст = "ВЫБРАТЬ
| СерииНоменклатуры.Наименование,
| СерииНоменклатуры.НомерГТД.Код КАК Код
|ИЗ
| Справочник.СерииНоменклатуры КАК СерииНоменклатуры
|ГДЕ
| СерииНоменклатуры.ВидНоменклатуры = &ВидНоменклатуры
| И НЕ СерииНоменклатуры.ПометкаУдаления";
Запрос.УстановитьПараметр("ВидНоменклатуры",Товар.ВидНоменклатуры);