Как сменить организацию-владельца XML-каталога в УТ 10.3.5.1 ?

1. ravencrow 5 03.06.17 11:14 Сейчас в теме
В базе данных 1С Предприятие 8.1 УТ 10.3.5.1 две организации. Необходимо выгружать товары на сайт битрикс от "Организации №2". Создаю стандартный WEB-обмен, но товары выгружаются от "Организации №1". В списке организаций у "Организации №1" код "000000000", а у "Организации №2" код "000000001".
В начале файла import.xml видно что владелец XML-каталога "Организация №1", а нужна "Организация №2".
<?xml version="1.0" encoding="UTF-8"?>
 <КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2017-06-01T17:13:01">
 <Классификатор>
 <Ид>c9ff34ab-77dd-11dd-a8c6-001e8c46e259</Ид>
 <Наименование>Классификатор (Каталог товаров)</Наименование>
 <Владелец>
 <Ид>3d792ba3-a02b-11dd-a0e3-b512c4ebda4a</Ид>
 <Наименование>Организация №1</Наименование>
 <ОфициальноеНаименование>Организация №1</ОфициальноеНаименование>
 <ИНН>1111111111</ИНН>
 </Владелец>
Показать

Видимо модуль WEB-обмена берет первую по коду организацию из списка. В этом модуле обмена нет поля для указания организации-владельца XML-каталога. В новых модулях есть, а в этом типовом нет. Обновить конфигурацию нет возможности. Нужно просто настроить выгрузку товаров с тем что есть от "Организации №2".
Подскажите как заставить типовой модуль WEB-обмена брать "Организацию №2", а не "Организацию №1" для выгрузки товара.
Прикрепленные файлы:
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. YNik 03.06.17 15:00 Сейчас в теме
(1), не пробовали поменять код у "Организации №1" на "000000001", а у "Организации №2" на "000000000"?
3. ravencrow 5 04.06.17 10:52 Сейчас в теме
(2) Пробовал, но это поле не активно, т.е. его нельзя изменить. Да, и такие изменения разве не затронут все документы?
23. Borisych 503 21.06.17 00:14 Сейчас в теме
(1) нет, в качестве id каталога используется идентификатор константы "Валюта регламентированного учета"
4. cassper 04.06.17 11:39 Сейчас в теме
У обмена явно нет понятия выгрузки товаров организации. Организация владелец заполняется автоматом, т.к. это требование формата-схемы xsd, где владелец обязательный узел к заполнению. Поэтому берет к заполнению "выбрать первые 1" у справочника организации.
5. cassper 04.06.17 11:40 Сейчас в теме
Говоря простым языком, сайту все равно, что указано во владельце файла xml
6. ravencrow 5 04.06.17 19:27 Сейчас в теме
(5) сайту может и всё равно, а мне нет, т.к. выгружать нужно товары "Организации №2", а выгружаются товары "Организации №1".
7. cassper 04.06.17 19:50 Сейчас в теме
(6) Типовой модуль обмена не заточен на выгрузку товаров, которые принадлежать определенной организации, т.к. за основу взят регистр накопления "ТоварыНаСкладах", где понятия "Организация" нет вообще.

Если вам нужно в качестве владельца выгружать определенную организацию (хоть это и не так принципиально, туда можно написать хоть что угодно, выгрузка от этого не пострадает, сайт не парсит владельца в xml, читай как "по умолчанию в типовом ядре и модуле") и самое важное - выгружать именно ее товары, то нужно переделывать выгрузку таким образом, чтобы за основу был взят регистр накопления "ТоварыОрганизаций", где есть измерение "Организация" и по нему можно установить отбор. Тогда да - осуществляться будет выгрузка товаров строго по выбранной организации.
8. ravencrow 5 04.06.17 20:21 Сейчас в теме
(7) если нет привязки товаров к организации, почему тогда он выгружает только товары организации №1, а товары организации №2 вообще не затрагивает, независимо от того что задано в отборах. Я пробовал вообще отключать отборы, т.е. снимал все галочки в отборах и он выгружал полностью все товары только организации №1. Товары других организаций он в упор не видит, хотя их там около 14000.
Пробовал выбирать в отборах склады организации №2, но выгрузка идет пустая. Модуль Веб-обмена их просто не видит, так как владелец xml-каталога организация №1.
9. cassper 04.06.17 21:16 Сейчас в теме
(8) Это довольно-таки странно, так как в типовом модуле нет отбора по организации, от слова вообще, если только не был дописан модуль обмена с сайтом.

Товары определенной организации каким образом классифицируются/подразделяются? Когда создается документ прихода товаров, то указывается нужная организация? И отчеты в разрезе организаций показывают наличие товаров по ним?
10. ravencrow 5 05.06.17 11:58 Сейчас в теме
(9)
Это довольно-таки странно, так как в типовом модуле нет отбора по организации, от слова вообще, если только не был дописан модуль обмена с сайтом.
Веб-модуль дописан не был, это абсолютно точно, он типовой. Отбора по организации нет, поэтому он и берёт первую из списка организацию. Видимо так предусмотрено 1С разработчиками, что раз владелец xml-каталога должен быть указан в import.xml, то они его и указали, первый попавшийся :)

Товары определенной организации каким образом классифицируются/подразделяются?
По складам и по группам товаров.

Когда создается документ прихода товаров, то указывается нужная организация?
Конечно, обязательно.

И отчеты в разрезе организаций показывают наличие товаров по ним?
Да показывает. Только что проверил: Ведомость по товарам и ГТД организаций.
11. cassper 05.06.17 13:02 Сейчас в теме
(10)
Веб-модуль дописан не был, это абсолютно точно, он типовой. Отбора по организации нет, поэтому он и берёт первую из списка организацию. Видимо так предусмотрено 1С разработчиками, что раз владелец xml-каталога должен быть указан в import.xml, то они его и указали, первый попавшийся :)

Все запросы, которые есть в типовом модуле обмена, не имеют возможности установить отбор по организации.

Разве, что я не учитываю, что конфигурация как динозавр (версия 10.3.5.1) и кто знает, что там было изначально сделано в модуле обмена с сайтом.

Я рассказываю на примере любой версии модуля обмена с сайтом, начиная с релиза 10.3.10

Провел тесты. Товар выгрузился без проблем, который не относится к организации-владельцу.

Так что тут, чтобы понять и разобраться, неплохо бы посмотреть саму конфигурацию
12. ravencrow 5 05.06.17 15:00 Сейчас в теме
Вот процедура из модуля ПроцедурыОбменаССайтом:
Процедура ЗарегистрироватьИзменения(Объект)
	
	Если Не ПараметрыСеанса.НаличиеОбменаССайтом Тогда
		Возврат;
	КонецЕсли;
		
	ТипОбъекта = ТипЗнч(Объект);
	
	// Номенклатура и картинки
	Если ТипОбъекта = Тип("РегистрСведенийНаборЗаписей.ЗначенияСвойствОбъектов") Тогда
		
		МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);
		Для каждого Запись Из Объект Цикл
			
			ТипДанных = ТипЗнч(Запись.Объект);
			
			Если ТипДанных = Тип("СправочникСсылка.Номенклатура") Тогда
				ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект);
			ИначеЕсли ТипДанных = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда
				ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
			КонецЕсли;	
			
		КонецЦикла;
		
	ИначеЕсли ТипОбъекта = Тип("РегистрНакопленияНаборЗаписей.ТоварыНаСкладах")
		  ИЛИ ТипОбъекта = Тип("РегистрСведенийНаборЗаписей.ЦеныНоменклатуры") Тогда 
		  
		МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);  
		Для каждого Запись Из Объект Цикл
			
			ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Номенклатура);
			
		КонецЦикла;
		
	ИначеЕсли ТипОбъекта = Тип("РегистрСведенийНаборЗаписей.ШтрихКоды") Тогда
		
		МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);
		Для каждого Запись Из Объект Цикл
			
			Если ТипЗнч(Запись.Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда
				ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Владелец);
			КонецЕсли;
			
		КонецЦикла;
		
	ИначеЕсли ТипОбъекта = Тип("СправочникОбъект.ХранилищеДополнительнойИнформации") Тогда		
		
		МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);
		
		Если ТипЗнч(Объект.Объект) = Тип("СправочникСсылка.Номенклатура")
		   И Объект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение Тогда	
		   
		   ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Объект);   
		   ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Ссылка);
			
		КонецЕсли;	
		
	ИначеЕсли ТипОбъекта = Тип("СправочникОбъект.ХарактеристикиНоменклатуры")
		  ИЛИ ТипОбъекта = Тип("СправочникОбъект.ЕдиницыИзмерения") Тогда			
		  
		Если ТипЗнч(Объект.Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда 
		  
			МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);	  
			ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Владелец);
			
		КонецЕсли;
Показать


Вот обработка ВыгрузкаДанныхCommerceML:
// Процедура пищет в XML-файл информацию о контрагенте при выгрузке документов
//
// Параметры:
//  ОбъектXML  - объект типа ЗаписьXML
//  Контрагент - справочник-ссылка "КОнтрагенты"
//  Роль       - строка - значение тэга "Роль"
//
Процедура ВыгрузитьКонтрагентаДок(ОбъектXML, Контрагент, Роль = Неопределено, СтруктурнаяЕдиница = Неопределено, ИмяГруппыВыгрузки = "Контрагент")

	ОбъектXML.ЗаписатьНачалоЭлемента(ИмяГруппыВыгрузки);
	
	ЗаписатьТекстовойУзел(ОбъектXML, "Ид",           Строка(Контрагент.УникальныйИдентификатор()));
	ЗаписатьТекстовойУзел(ОбъектXML, "Наименование", Контрагент.Наименование);
	
	Если Контрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
		ЗаписатьТекстовойУзел(ОбъектXML, "ОфициальноеНаименование", Контрагент.НаименованиеПолное);
		
		// выгрузка юридического адреса
		Если ТипЗнч(Контрагент) = Тип("СправочникСсылка.Организации") Тогда
			ВыгрузитьЮрАдресОрганизации(ОбъектXML, Контрагент);
		КонецЕсли;
		
	Иначе
		ЗаписатьТекстовойУзел(ОбъектXML, "ПолноеНаименование", Контрагент.НаименованиеПолное);
	КонецЕсли;	
	
	ЗаписатьТекстовойУзел(ОбъектXML, "ИНН", Контрагент.ИНН);
	ЗаписатьТекстовойУзел(ОбъектXML, "КПП", Контрагент.КПП);
	ЗаписатьТекстовойУзел(ОбъектXML, "ОКПО", Контрагент.КодПоОКПО);
	
	ВыгрузитьБанковскийсчетОрганизации(ОбъектXML, СтруктурнаяЕдиница);
	
	Если Роль <> Неопределено Тогда
		ЗаписатьТекстовойУзел(ОбъектXML, "Роль", Роль);
	КонецЕсли;
	
	ОбъектXML.ЗаписатьКонецЭлемента();

КонецПроцедуры
Показать
13. ravencrow 5 05.06.17 15:14 Сейчас в теме
А может быть проблема в том что организация, которую веб-модуль игнорирует, задана в справочнике организаций как физ.лицо?
14. cassper 05.06.17 15:25 Сейчас в теме
Не зависит.

Проверка была выполнена на демо-базе ут 10.3. Есть там организация из физ.лицо и юр.лицо. Выгружаю товары физ.лица. В качестве владельца пишется юр.лицо. Все прекрасно выгружается.

Может дело вообще в учетных данных, а мы тут разбираем ситуацию с модулем.

Сколько бы я в код не смотрел, ни в одном месте нет упоминания об организации, о накладываемом отборе на товары, на их остатки.

Нет и не будет в типовом. Организация-Владелец на выгрузку не влияет 100^n%.
15. ravencrow 5 05.06.17 15:31 Сейчас в теме
А что может быть не так в учетных данных?
16. cassper 05.06.17 15:37 Сейчас в теме
(15) Здесь больше имелось ввиду наличие свободных остатков, наличие цен по нужному типу цен.

Но это все важно, если в настройке обмена с сайтом устанавливаются отборы на "Остаток на складе", на выбранный "Склад", на выбранный "Тип цен".

Или попытки выгрузить товар были при всех отключенных отборах (все строки в таблице отборов без "галочек")?

Не выгружаемые товары какой тип имеют? Товар/Услуга/Комплект/Набор?
17. ravencrow 5 05.06.17 15:45 Сейчас в теме
(16) Да я все галки убирал в отборах, он всё равно выгружает все товары исключительно организации под кодом 000000000 в справочнике организаций. Товары остальных организаций веб-модуль игнорирует. Все товары имеют тип "Товар".
18. cassper 05.06.17 15:50 Сейчас в теме
(17) Впервые сталкиваюсь с ситуацией, когда очень важно, какие товары выгружать (точнее какого юрлица).

Если посмотреть ведомость по товарам на складах, то остатки есть на всех возможных складах проблемного товара?
Если в таблицах отбора установить фильтр на один проблемный товар (Номенклатура РАВНО "Проблемный товар", что будет в выходных файлах? Что сообщит модуль обмена при выгрузке?

И тестировать желательно полную выгрузку, а так же выгрузку в каталог на диске (для простоты анализа и для быстрого получения результата).
19. ravencrow 5 05.06.17 16:38 Сейчас в теме
(18) дело в том что "Ведомость по товарам на складах" всегда пустая, так как не ведется учет товаров организаций в разрезе складов. Галка "Вести учет товаров организаций в разрезе складов" не стоит в Учетной политике.

Ведомость по товарам в рознице заполняется нормально в разрезе складов. Ведомость по товарам и ГТД организаций тоже заполняется в разрезе организаций без проблем.
Остатки есть на всех складах.

(18)
Если в таблицах отбора установить фильтр на один проблемный товар (Номенклатура РАВНО "Проблемный товар", что будет в выходных файлах? Что сообщит модуль обмена при выгрузке?
Ничего. Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.
Хотя проверил этот товар точно не продан, есть на складе с остатком 1.
Тестировалась полная выгрузка.

Это очень странно, я впервые сталкиваюсь с таким.
20. cassper 05.06.17 17:13 Сейчас в теме
(19) на самом деле факт выгрузки товаров пока что никак не влияет на заполненность тех или иных регистров накопления.

Но важно понимать, что регистр накопления "ТоварыОрганизаций" не участвует в выборке остатков в модуле обмена с сайтом, а "ТоварыВРознице" - участвуют.

Если же пишет модуль, что изменения товаров не зарегистрированы и никаких отборов не установлено по остаткам (количество, склады), мы это выяснили - без галочек все выгружается в каталог на диске...

То значит, что проблема изначально в самом товаре. В чем именно - большой вопрос. Что-то либо не дозаполнено, либо заполнено некорректно. Проще запустить отладку, чем еще на 10 сообщений выяснять, что же может быть не так.

P.S. обычно товар выгружается вне зависимости от наличия остатков на складе.
21. ravencrow 5 06.06.17 14:35 Сейчас в теме
(20)
Если же пишет модуль, что изменения товаров не зарегистрированы и никаких отборов не установлено по остаткам (количество, склады), мы это выяснили - без галочек все выгружается в каталог на диске...
без галочек выгружаются все товары только организации с кодом 000000000, товары других организаций не выгружаются вообще, не зависимо от того установлены галочки или нет.

В ТП битрикс только развели руками и посоветовали обновить модуль веб-обмена.
22. cassper 06.06.17 14:44 Сейчас в теме
(21) а обе организации принимают и торгуют товаром в розницу (с розничных складов)?

Я бы все же взглянул на файл конфигурации cf
P.S. Битрикс осуществляет поддержку только в случае установленных доп. модулей обмена с сайтом (их финальных), т.к. уверены только в них и давать комментарии готовы только по своим же модулям. Что касается типовых (встроенных в конфу) - вы правильно сказали "разводят руками" и условно предлагают писать в фирму 1с, т.к. это их детище.
24. ravencrow 5 24.06.17 16:29 Сейчас в теме
Вообщем в топку эти грабли, перешёл на УТ11. Тему можно закрывать.
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день