Конвертация не работает НайтиПоКоду в ПКО "Перед загрузкой"

1. asdPerepel 12 27.12.17 14:26 Сейчас в теме
Здравствуйте.

Переношу из БГУ 1 в БГУ 2. Правила из БГУ 2.0.52.48.

Добавил конвертацию самописного справочника в котором в обработчике "Перед загрузкой" такой код:

СпрСтатьи=Справочники.СтатьиАналитикиОплатыЧекаККМ.СоздатьЭлемент();

СпрСтатьи.КПС = Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду("09050000000000130");
СпрСтатьи.КФО = Перечисления.КВД.Внебюджет;
СпрСтатьи.КЭК = Справочники.КОСГУ.НайтиПоКоду("130");
СпрСтатьи.Наименование = "Внебюджет";
СпрСтатьи.Организация = Справочники.Организации.НайтиПоКоду("000000001");
СпрСтатьи.Записать();
Показать

Элемент справочника СтатьиАналитикиОплатыЧекаККМ создаётся, но поля КПС и Организация пустые. Почему?

Этот же код прекрасно срабатывает в запущенной после загрузки внешней обработке. Думал мой справочник загружается раньше справочника КПС. Попытался настроить порядок загрузки, но справочник КПС не прописан в ПВД.

Порядок загрузки справочника Организации 1900, а моего 4100.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. triviumfan 93 27.12.17 15:28 Сейчас в теме
(1) Проблема в приоритете. А зачем вообще ПерезЗагрукой() создавать этот объект? Ведь можно по ссылке создать.
6. asdPerepel 12 27.12.17 20:55 Сейчас в теме
(4)Переносится справочник "Прейскурант". В БГУ 1 есть дописанный аналог этого справочника. Создаю новое ПКО "МойСправочник"-"Прейскурант". Но в справочнике "Прейскурант" есть поле ОсновнаяСтатьяАналитикиОплаты типа Справочники.СтатьиАналитикиОплатыЧекаККМ, а в БГУ 1 в "МойСправочник" такого поля нет. Поэтому перед загрузкой элемента справочника "Прейскурант" я создаю элемент справочника СтатьиАналитикиОплатыЧекаККМ, а при загрузке элемента справочника "Прейскурант" записываю этот элемент в поле ОсновнаяСтатьяАналитикиОплаты.
Приоритет загрузки справочника "Организации" 1900, а справочника "МойСправочник" 4100, так что поле Организация должно бы было записаться, но не записывается.
2. dandykry 10 27.12.17 14:32 Сейчас в теме
Попробуйте Сообщить(СпрСтатьи.Организация); Может дело в доп параметрах поиска на стороне приемника

7. asdPerepel 12 27.12.17 20:56 Сейчас в теме
(2)Сообщить(СпрСтатьи.Организация) - пусто.
10. dandykry 10 28.12.17 08:07 Сейчас в теме
(7) Значит организация по коду у вас не находится. пустая ссылка. Сравните еще раз коды, используйте НайтиПоРеквизиту("ИНН","7700000000"). Найдите запросом. И по идее, этот элемент создавать его кучу раз не нужно, если только справочник не подчиненный.
3. user623969_dusa 27.12.17 14:48 Сейчас в теме
еще есть второй параметр - искать по полному коду - поставь Истина, может 0 отбрасывается при переносе
5. plevakin 27.12.17 15:39 Сейчас в теме
А идея какая? Создать один единственный элемент справочника СтатьиАналитикиОплатыЧекаККМ или этот код запускается несколько раз с разными кодами? И как потом этот справочник используется?
8. asdPerepel 12 27.12.17 20:58 Сейчас в теме
(5)Переносится справочник "Прейскурант". В БГУ 1 есть дописанный аналог этого справочника. Создаю новое ПКО "МойСправочник"-"Прейскурант". Но в справочнике "Прейскурант" есть поле ОсновнаяСтатьяАналитикиОплаты типа Справочники.СтатьиАналитикиОплатыЧекаККМ, а в БГУ 1 в "МойСправочник" такого поля нет. Поэтому перед загрузкой элемента справочника "Прейскурант" я создаю элемент справочника СтатьиАналитикиОплатыЧекаККМ, а при загрузке элемента справочника "Прейскурант" записываю этот элемент в поле ОсновнаяСтатьяАналитикиОплаты.
Приоритет загрузки справочника "Организации" 1900, а справочника "МойСправочник" 4100, так что поле Организация должно бы было записаться, но не записывается.
11. plevakin 28.12.17 08:31 Сейчас в теме
(8) Получается всем элементам справочника Прейскурант нужно в реквизит ОсновнаяСтатьяАналитикиОплаты записать один и тот же элемент, так?

Я бы сделал правило Пусто - СтатьиАналитикиОплатыЧекаККМ, а в ПКО "МойСправочник"-"Прейскурант" добавил бы ПКС "Пусто" - ОсновнаяСтатьяАналитикиОплаты. Правило переноса указать новое

В этом ПКС ИсходящиеДанные = Новый Структура(); и в нее добавить
ИсходящиеДанные.Вставить("КПС", Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду("09050000000000130"))

и далее по тексту. Если есть возможность лучше заменить поиск по коду на ссылки справочника МойСправочник, если оттуда их можно достать.

В правиле Пусто - СтатьиАналитикиОплатыЧекаККМ
Такие ПКС
Пусто  - КПС Правило КлассификационныеПризнакиСчетов (должно быть, если нет создать)
Пусто - КФО Правило КВД;
Пусто - КЭК Правило КОСГУ (должно быть, если нет создать)
Пусто - Наименование 
Пусто - Организация Правило Организации

Во всех ПКС галка получить из Входящих данных.

Как-то так, возможно где-то ошибся, писал прямо здесь. Главное понять идею.
13. asdPerepel 12 28.12.17 16:03 Сейчас в теме
(11)Идея понятна. Спасибо.
12. triviumfan 93 28.12.17 11:13 Сейчас в теме
(8) Чем больше число, тем выше приоритет, видимо организации ещё нет. Исправьте приоритет, либо сначала организацию выгрузите, а потом уже остальную НСИ. Ещё для таких свойств можно создать ПКО с пустым источником и в нём заполнять.
14. asdPerepel 12 28.12.17 16:07 Сейчас в теме
(12) Т.е. чем больше число, тем раньше загружается справочник? Я-то думал с точностью до наоборот.
"Совершите вы массу открытий...
Иногда не желая того."

Тогда всё понятно.
Спасибо.
9. asdPerepel 12 27.12.17 21:00 Сейчас в теме
(5)Ну прочтите, пожалуйста, мой ответ выше или ниже. Я описал суть моих телодвижений.
Оставьте свое сообщение

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