Перегуглил весь интернет и не могу найти решение, везде примеры "Реквизит источника в тч приемника. Но склад в УТ - магазин в Рознице, и по этому склад Розницы в табличную часть нужно получить из приемника.
В ПКО в обработчике событий "После выгрузки" получаю склад.
Запрос = Новый Запрос("ВЫБРАТЬ
| Склады.Ссылка КАК Склад
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.Организация = &Организация
| И Склады.Магазин = &Магазин");
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("Магазин", Объект.Магазин);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Склад = Выборка.Склад
КонецЕсли;
Показать
Как его передать в ПКГС чтобы добавить его в строки табличной части?
Нет, в ут склад это магазин в рознице. А мне нужно склад розницы который подчинен магазину. склады уже заведены в рознице нужно только подставить нужный склад в табличную часть.
Реквизиты в отчете о розничных продажах в Рознице 2.1:
Организация, магазин, касса ккм.
Реквизиты ТЧ:
Номенклатура
Количество
цена
Сумма
Склад - Вот именно его мне нужно заполнить (выбрать по магазину и организации)
(4) seva1405, в 10.3 это вроде как при загрузке выполняется. Поиск по ТЧ СоответствиеМагазиновИСкладов. Сам код передается в виде строки, по нему в соответствии находится и сам склад.
(6) seva1405, можно оставить пустой источник и написать свой алгоритм получения значения. для ПКГС можно сделать коллекцию и потом получая данные их записывать в таблицу.
(7) Xershi, если б еще знал как, то и тему не стал бы создавать. Проблема то в том что клад только в приемнике а остальные данные в источнике, как получить эти данные?
(14) seva1405, скиньте скрин ПКО чтобы понятно было.
А так не вижу проблемы прописать свойство элемента таблицы как склад и прописать правило вашего ПКО.
Это же не подходит так как значение меняется в зависимости от организации и магазина.
В базе 10 магазинов в каждом по 2 склада. Деление чеков происходит по остаткам на складах в каждом магазине.
Приобрел незабываемый горький опыт внедрения УТ в связке с розницей. После года постоянных исправлений ошибок, пытаюсь перенести все в новую розницу.
Значение = Справочники.Склады.НайтиПоКоду("0000001");
Но Ведь если я так напишу то во всех ОРП проставится один и тот же склад.
Обратиться к складу через магазин я не могу т.к. у магазина 2 склада которые относятся к разным организациям. Получить склад обратившись к организации я не могу у организации нет реквизита склад.
В Итоге получается что нужно выбирать склад запросом устанавливая параметры "магазин и организацию документа", склад я получил после выгрузки в первом посте, мне нужно его передать в ПКГС вот тут я никак не могу найти информацию как это правильно сделать.
Я пытался передать во входящие данные:
Запрос = Новый Запрос("ВЫБРАТЬ
| Склады.Ссылка КАК Склад
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.Организация = &Организация
| И Склады.Магазин = &Магазин");
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("Магазин", Объект.Магазин);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ВходящиеДанные.Вставить("Слад",Выборка.Склад)
КонецЕсли;
Запрос = Новый Запрос("ВЫБРАТЬ
| Склады.Ссылка КАК Склад
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.Организация = &Организация
| И Склады.Магазин = &Магазин");
Запрос.УстановитьПараметр("Организация", Источник.Организация);
Запрос.УстановитьПараметр("Магазин", Источник.Магазин);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ИСХОДЯЩИЕДанные.Вставить("Слад",Выборка.Склад)
КонецЕсли;
Показать
Это не работает потому что нужно выбирать из приемника.
(41) seva1405, так ведь ругается на то, что в справочнике Склады нет реквизита Организация. В Рознице вообще нет складов? Только магазины? Если так, то где-то должно хранится соответствие магазина розницы складу УТ. Если в Рознице нет этого соответствия, то вместо склада нужно выгружать УИД магазина, а при загрузке находить в УТ соответствующий ему склад.
(49) kasper076, В рознице есть склады -подсклад магазина.
В УТ есть склады но подсклада нету.
В правилах есть конвертация складов в магазины, а мне нужно подсклад магазина получить которого нет в УТ он есть только в рознице. При этом его нужно вычислить по организации и магазину установленными в документе.
Пример:
Есть 2 организации ИП и ООО
Есть 2 магазина маг1 и маг2
есть 2 склада у маг1 и два у маг2 т.е. их 4 склада.
Каждый склад у магазина принадлежит организации к примеру ИП-Маг1-Склад1, ООО-маг1-Склад2. ИП-маг2-Склад3, ООО-маг2-Склад4.
В документе организация - ООО, магазин-Маг1. Значит склад должен быть Склад2.
В УТ есть склад но это Маг1 или Маг2 в Рознице и больше ничего.
Проблему решить не возможно. Вернее я решил ее но не в конвертации, а обработкой.
Т.к. склад нужно получать из приемника, то подходят только события ПослеЗагрузки. Это событие реализовано только для ПКО, никаких ПКС и ПКГС, а также "Значение = ...".
Правильно, как я указал в (32) : Объект.Склад = ... (в ПослеЗагрузки для ПКО).
А твои советы подходят для случая, когда самого объекта-источника нет, но его реквизиты могут быть получены только в источнике.
Если склад получается из приемника, то в обработчике ПослеЗагрузки объекта в ПКО
должно быть что то вроде такого:
НужныйСклад = ... // тут ищем нужный склад по любому нужному алгоритму или запросу;
НужныйСклад = Объект.Магазин.Склад; (это только пример, не изучал тему, и не знаю, какой склад нужен).
Объект.Склад = НужныйСклад;
Для каждого стр Из Объект.ИмяТабличнойЧасти Цикл
Стр.Склад = НужныйСклад;
КонецЦикла
Показать
Объект здесь, это документ (к которому относиться ПКО).
Я по разному пытался, потом вообще все удалил и пытался так выгрузить, там нет ничего пустые ПКО,ПКГС и ПКС, но все равно не дает причем при выгрузке из ут говорит что склад не обнаружен.