|
Проблема с выгрузкой товаров на сайт. Сайт на wordpress | ☑ | ||
---|---|---|---|---|
0
seregapplk
31.07.21
✎
17:03
|
Доброго времени суток.
Проблема с выгрузкой товаров на сайт. Сайт на wordpress плагин Вот https://ru.wordpress.org/plugins/woocommerce-and-1centerprise-data-exchange/#description В ут 10.3 работал как часы В 11 промучился с договором, Потом международный формат единицы измерения должен быть 3 символа, в настройках галочки Выгружать Катало товаров Цены по соглашениям и остатки по складам ( в соглашении разрешение внешним пользователям). Режим выгрузки все Таблица как логов Каталог "такой то" группа соответствует названию " такая то" Идентификатор "программа автоматически подставляет" Отбор " остаток на складе больше 0" И все равно весь список шарашит туда Убился, не понимаю в чём дело. скрин настроек https://drive.google.com/file/d/1wKeKTFCO_3uKNntacLDnauNjVelSpAge/view?usp=sharing |
|||
1
seregapplk
01.08.21
✎
13:11
|
каталог один оставил (все),
группы в списке, остаток больше 0, все равно пустую номенклатуру загоняет. |
|||
2
vde69
01.08.21
✎
13:32
|
Так в 1с трассировка есть
|
|||
3
seregapplk
01.08.21
✎
13:38
|
как только это сделать
|
|||
4
ДенисЧ
01.08.21
✎
14:05
|
(3) Есть волшебная кнопка F11.
Правда, чтобы ей пользоваться - нужно программистом быть.. |
|||
5
seregapplk
01.08.21
✎
14:08
|
я не пойму в какой процедуре происходит заполнение, и почему она не обращает внимания на "количество больше 0"
|
|||
6
seregapplk
01.08.21
✎
14:12
|
Нашел,
Процедура ЗаполнитьТаблицуФормированияПакетаПредложений(МассивНоменклатуры, ТаблицаИсточник, ТаблицаПриемник) Для Каждого ЭлементМассива Из МассивНоменклатуры Цикл Отбор = Новый Структура; Отбор.Вставить("Номенклатура", ЭлементМассива); ТаблицаТипыЦен = ТаблицаИсточник.Скопировать(Отбор); ТаблицаТипыЦен.Свернуть("ТипЦены, |ТипЦеныЦенаВключаетНДС, |ТипЦеныНаименование, |ТипЦеныВалютаКод, |ТипЦеныЕдиницаЦеныНаименованиеСокращенное, |ТипЦеныЕдиницаЦеныКоэффициент, |ЦенаЗаЕдиницу, |Номенклатура, |Характеристика, ЕдиницаИзмерения"); УдалитьПустыеСтроки(ТаблицаТипыЦен, "ТипЦены"); ТаблицаОстаткиПоСкладам = ТаблицаИсточник.Скопировать(Отбор); ТаблицаОстаткиПоСкладам.Свернуть("Склад, СкладНаименование, ОстатокНаСкладе, |Номенклатура, Характеристика, ЕдиницаИзмерения"); УдалитьПустыеСтроки(ТаблицаОстаткиПоСкладам, "Склад"); ПромежуточнаяТаблицаНоменклатуры = ТаблицаИсточник.Скопировать(Отбор); ПромежуточнаяТаблицаНоменклатуры.Свернуть("Номенклатура, НоменклатураНаименование, |НоменклатураАртикул, |НоменклатураПометкаУдаления, |Характеристика, |ЕдиницаИзмерения, |ЕдиницаИзмеренияКод, |ЕдиницаИзмеренияНаименованиеПолное, |ЕдиницаИзмеренияМеждународноеСокращение, |ЕдиницаИзмеренияПересчетКоэф, |ЕдиницаИзмеренияПересчетЕдиница, |ЕдиницаИзмеренияПересчетЕдиница"); УдалитьПустыеСтроки(ПромежуточнаяТаблицаНоменклатуры, "НоменклатураНаименование"); Для Каждого ТекСтрока Из ПромежуточнаяТаблицаНоменклатуры Цикл НоваяСтрока = ТаблицаПриемник.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекСтрока); ОтборНоменклатураХарактеристика = Новый Структура; ОтборНоменклатураХарактеристика.Вставить("Номенклатура", ТекСтрока.Номенклатура); ОтборНоменклатураХарактеристика.Вставить("Характеристика", ТекСтрока.Характеристика); ОтборНоменклатураХарактеристика.Вставить("ЕдиницаИзмерения", ТекСтрока.ЕдиницаИзмерения); Остатки = ТаблицаОстаткиПоСкладам.Скопировать(ОтборНоменклатураХарактеристика); НоваяСтрока.ОстаткиПоСкладам = Остатки; ТаблицаЦен = ТаблицаТипыЦен.Скопировать(ОтборНоменклатураХарактеристика); НоваяСтрока.Цены = ТаблицаЦен; КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
7
seregapplk
01.08.21
✎
14:28
|
помогите, что поправить чтобы с нулевым остатком не лезло в таблицу
Процедура ЗаполнитьИзменияПакета(СтрокаТаблицыКаталога, ТаблицаОбновленияПакета, КоммерческаяИнформацияXDTO) ПакетCML = ПакетCML(); ИзмененияПакетаПредложенийТип = ПакетCML.Получить("ИзмененияПакетаПредложений"); ИзмененияПакетаПредложенийXDTO = ФабрикаXDTO.Создать(ИзмененияПакетаПредложенийТип); ИзмененияПакетаПредложенийXDTO.Ид = СтрокаТаблицыКаталога.ИдентификаторКаталога+"#"; ИзмененияПакетаПредложенийXDTO.ИдКаталога = СтрокаТаблицыКаталога.ИдентификаторКаталога; ПредложенияТип = ПолучитьТипСвойстваОтТипаОбъектаXDTO(ИзмененияПакетаПредложенийТип, "Предложения"); ПредложенияXDTO = ФабрикаXDTO.Создать(ПредложенияТип); ПредложениеТип = ПолучитьТипСвойстваОтТипаОбъектаXDTO(ПредложенияТип, "Предложение"); ЦенаТип = ПакетCML.Получить("Цена"); ОстаткиПоСкладамТип = ПакетCML.Получить("ОстаткиПоСкладам"); ЦеныТип = ПолучитьТипСвойстваОтТипаОбъектаXDTO(ПредложениеТип, "Цены"); Для Каждого ТекСтрока Из ТаблицаОбновленияПакета Цикл ПредложениеXDTO = ФабрикаXDTO.Создать(ПредложениеТип); ПредложениеXDTO.Ид = УникальныйИдентификаторОбъекта(ТекСтрока.Номенклатура); Если ЗначениеЗаполнено(ТекСтрока.Характеристика) Тогда ПредложениеXDTO.ИдХарактеристики = УникальныйИдентификаторОбъекта(ТекСтрока.Характеристика); КонецЕсли; ЦеныXDTO = ФабрикаXDTO.Создать(ЦеныТип); Для Каждого СтрокаТипЦены Из ТекСтрока.Цены Цикл ЦенаXDTO = ФабрикаXDTO.Создать(ЦенаТип); ЦенаXDTO.ИдТипаЦены = УникальныйИдентификаторОбъекта(СтрокаТипЦены.ТипЦены); ЦенаXDTO.ЦенаЗаЕдиницу = СтрокаТипЦены.ЦенаЗаЕдиницу; ЦенаXDTO.Коэффициент = СтрокаТипЦены.ТипЦеныЕдиницаЦеныКоэффициент; ЦенаXDTO.Валюта = СтрокаТипЦены.ТипЦеныВалютаКод; ЦенаXDTO.Единица = СтрокаТипЦены.ТипЦеныЕдиницаЦеныНаименованиеСокращенное; ЦеныXDTO.Цена.Добавить(ЦенаXDTO); КонецЦикла; Если ЦеныXDTO.Цена.Количество() > 0 Тогда ПредложениеXDTO.Цены = ЦеныXDTO; КонецЕсли; ОстатокВсего = 0; Для Каждого СтрокаОстаткиПоСкладам Из ТекСтрока.Остатки Цикл Если Не ЗначениеЗаполнено(СтрокаОстаткиПоСкладам.Склад) Тогда Продолжить; КонецЕсли; ОстаткиПоСкладамXDTO = ФабрикаXDTO.Создать(ОстаткиПоСкладамТип); ОстаткиПоСкладамXDTO.ИдСклада = УникальныйИдентификаторОбъекта(СтрокаОстаткиПоСкладам.Склад); ОстаткиПоСкладамXDTO.КоличествоНаСкладе = СтрокаОстаткиПоСкладам.ОстатокНаСкладе; ПредложениеXDTO.Склады.Добавить(ОстаткиПоСкладамXDTO); ОстатокВсего = ОстатокВсего + СтрокаОстаткиПоСкладам.ОстатокНаСкладе; КонецЦикла; ПредложениеXDTO.Количество = ОстатокВсего; ПредложенияXDTO.Предложение.Добавить(ПредложениеXDTO); КонецЦикла; ИзмененияПакетаПредложенийXDTO.Предложения = ПредложенияXDTO; КоммерческаяИнформацияXDTO.ИзмененияПакетаПредложений.Добавить(ИзмененияПакетаПредложенийXDTO); КонецПроцедуры Процедура ЗаполнитьТаблицуДляОтправкиДаннымиНоменклатуры(МассивНоменклатуры, СтруктураИсходныхТаблиц, ТаблицаПриемник) Для Каждого ТекСтрока Из СтруктураИсходныхТаблиц.Номенклатура Цикл Если МассивНоменклатуры.Найти(ТекСтрока.Номенклатура) = Неопределено Тогда Продолжить; КонецЕсли; НоваяСтрока = ТаблицаПриемник.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекСтрока); Отбор = Новый Структура; Отбор.Вставить("Номенклатура", ТекСтрока.Номенклатура); Если Не СтруктураИсходныхТаблиц.Характеристики = Неопределено Тогда Характеристики = СтруктураИсходныхТаблиц.Характеристики.Скопировать(Отбор); НоваяСтрока.Характеристики = Характеристики; КонецЕсли; Файлы = СтруктураИсходныхТаблиц.Файлы.Скопировать(Отбор); НоваяСтрока.Файлы = Файлы; Свойства = СтруктураИсходныхТаблиц.Свойства.Скопировать(Отбор); НоваяСтрока.Свойства = Свойства; КонецЦикла; КонецПроцедуры |
|||
8
seregapplk
01.08.21
✎
14:28
|
Сергей, [01.08.21 14:27]
Не должно же так быть. В ут работает, судя по информации в сети, проблема есть обратная. )) Он с нулевыми не выгружает. Механизм то один и тот же. Не пойму где я ошибся в настройках. |
|||
9
ДенисЧ
01.08.21
✎
14:35
|
Для Каждого СтрокаОстаткиПоСкладам Из ТекСтрока.Остатки Цикл
//// Если СтрокаОстаткиПоСкладам.ОстатокНаСкладе <= 0 ТОгда Продолжить; КонецЕсли //// Если Не ЗначениеЗаполнено(СтрокаОстаткиПоСкладам.Склад) Тогда Это же настолько очевидно, что у меня просто нет слов. |
|||
10
seregapplk
01.08.21
✎
14:54
|
Спасибо
|
|||
11
seregapplk
01.08.21
✎
16:21
|
Все тоже самое.
|
|||
12
OldCondom
01.08.21
✎
16:28
|
Перезагрузите компьютер
|
|||
13
seregapplk
03.08.21
✎
13:25
|
выгружает только если в список загнать конкретную номенклатуру, но тоже плевать на остатки по складам
|
|||
14
seregapplk
03.08.21
✎
16:18
|
остатки заполняет в этой процедуре
только что не так не понимаю ПолучитьДанныеДляВыгрузкиПакетаПредложений(ПрикладныеПараметры,Знач КомпоновщикНастроек, ТаблицаДанныеПакетаПредложений, ОписаниеОшибки) ТекстыЗапросов = Новый Структура("Цены, Остатки"); ОбменССайтомПереопределяемый.ПолучитьТекстыЗапросовПакетаПредложений(ТекстыЗапросов); ЕстьОшибка = Ложь; Для Каждого КлючЗначение Из ТекстыЗапросов Цикл Если Не ЗначениеЗаполнено(КлючЗначение.Значение) Тогда ОписаниеОшибки = ОписаниеОшибки + НСтр("ru='Не заполнен текст запроса для получения данных:';uk='Не заповнений текст запиту для отримання даних:'")+ КлючЗначение.Ключ + Символы.ПС; ЕстьОшибка = Истина; КонецЕсли; КонецЦикла; Если ЕстьОшибка Тогда Возврат; КонецЕсли; ПоляИсточниковДанных = Новый Структура; ЗаполнитьПоляИсточниковДанных(ПоляИсточниковДанных, Истина); ТаблицаЦены = РезультатВыполненияСхемы(КомпоновщикНастроек, ТекстыЗапросов.Цены, ПоляИсточниковДанных.Цены, ПрикладныеПараметры, "ПакетПредложений"); ТаблицаЦены.Индексы.Добавить("Номенклатура"); ТаблицаОстатки = РезультатВыполненияСхемы(КомпоновщикНастроек, ТекстыЗапросов.Остатки, ПоляИсточниковДанных.Остатки, ПрикладныеПараметры, "ПакетПредложений"); ТаблицаОстатки.Индексы.Добавить("Номенклатура"); // Полученные в результате выполнения СКД таблицы значений поместим в новую СКД, // чтобы можно было применить отбор по количеству на складе СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); ИсточникДанных.Имя = "ИсточникДанных1"; ИсточникДанных.ТипИсточникаДанных = "Local"; ОбъектЦены = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")); ОбъектЦены.Имя = "Цены"; ОбъектЦены.ИмяОбъекта = "Цены"; ОбъектЦены.ИсточникДанных = "ИсточникДанных1"; ОбъектОстатки = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")); ОбъектОстатки.Имя = "Остатки"; ОбъектОстатки.ИмяОбъекта = "Остатки"; ОбъектОстатки.ИсточникДанных = "ИсточникДанных1"; ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("Цены", ТаблицаЦены); ВнешниеНаборыДанных.Вставить("Остатки", ТаблицаОстатки); ПоляИсточниковДанных = Новый Структура; ЗаполнитьПоляИсточниковДанных(ПоляИсточниковДанных, Истина, Ложь); ЗаполнитьПоляСхемыКомпоновки(ПоляИсточниковДанных, СхемаКомпоновкиДанных); СвязиНаборов = СхемаКомпоновкиДанных.СвязиНаборовДанных; НоваяСвязь = СвязиНаборов.Добавить(); НоваяСвязь.НаборДанныхИсточник = "Цены"; НоваяСвязь.НаборДанныхПриемник = "Остатки"; НоваяСвязь.ВыражениеИсточник = "Номенклатура"; НоваяСвязь.ВыражениеПриемник = "Номенклатура"; НоваяСвязь = СвязиНаборов.Добавить(); НоваяСвязь.НаборДанныхИсточник = "Цены"; НоваяСвязь.НаборДанныхПриемник = "Остатки"; НоваяСвязь.ВыражениеИсточник = "Характеристика"; НоваяСвязь.ВыражениеПриемник = "Характеристика"; НоваяСвязь = СвязиНаборов.Добавить(); НоваяСвязь.НаборДанныхИсточник = "Цены"; НоваяСвязь.НаборДанныхПриемник = "Остатки"; НоваяСвязь.ВыражениеИсточник = "ЕдиницаИзмерения"; НоваяСвязь.ВыражениеПриемник = "ЕдиницаИзмерения"; Идентификатор = Новый УникальныйИдентификатор; АдресСхемыКомпоновкиДанных = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, Идентификатор); ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыКомпоновкиДанных); КомпоновщикНастроек1 = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек1.Инициализировать(ИсточникНастроек); Настройки = Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки()); КомпоновщикНастроек1.ЗагрузитьНастройки(Настройки.Получить()); ОбщийМассив = ПоляИсточниковДанных.Цены; ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбщийМассив, ПоляИсточниковДанных.Остатки, Истина); УдалитьПоляДругихНаборовДанных(ОбщийМассив, КомпоновщикНастроек1.Настройки); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек1.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,,); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТаблицаДанныеПакетаПредложений = Новый ТаблицаЗначений; ПроцессорВывода.УстановитьОбъект(ТаблицаДанныеПакетаПредложений); ПроцессорВывода.Вывести(ПроцессорКомпоновки); ТаблицаДанныеПакетаПредложений.Индексы.Добавить("Номенклатура"); КонецПроцедуры |
|||
15
seregapplk
03.08.21
✎
16:18
|
остатки заполняет в этой процедуре
только что не так не понимаю |
|||
16
seregapplk
04.08.21
✎
14:19
|
может кто на платной основе сделает?
|
|||
17
seregapplk
06.08.21
✎
08:39
|
пробовал так
ОстатокВсего = 0; Для Каждого СтрокаОстаткиПоСкладам Из ТекСтрока.Остатки Цикл //// Если СтрокаОстаткиПоСкладам.ОстатокНаСкладе <= 0 ТОгда Продолжить; КонецЕсли //// Если Не ЗначениеЗаполнено(СтрокаОстаткиПоСкладам.Склад) Тогда Продолжить; КонецЕсли; ОстаткиПоСкладамXDTO = ФабрикаXDTO.Создать(ОстаткиПоСкладамТип); ОстаткиПоСкладамXDTO.ИдСклада = УникальныйИдентификаторОбъекта(СтрокаОстаткиПоСкладам.Склад); ОстаткиПоСкладамXDTO.КоличествоНаСкладе = СтрокаОстаткиПоСкладам.ОстатокНаСкладе; ПредложениеXDTO.Склады.Добавить(ОстаткиПоСкладамXDTO); ОстатокВсего = ОстатокВсего + СтрокаОстаткиПоСкладам.ОстатокНаСкладе; КонецЦикла; ПредложениеXDTO.Количество = ОстатокВсего; ПредложенияXDTO.Предложение.Добавить(ПредложениеXDTO); КонецЦикла; ИзмененияПакетаПредложенийXDTO.Предложения = ПредложенияXDTO; КоммерческаяИнформацияXDTO.ИзмененияПакетаПредложений.Добавить(ИзмененияПакетаПредложенийXDTO); ничего |
|||
18
rsv
06.08.21
✎
09:04
|
(17) а где xml то сам ? Который на сервер гоните . Прослойка xdto круто но ..ее итог это обычный xml
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |