Имя: Пароль:
1C
1С v8
Конвертация 2.1 строкового значения доп. реквизита в ссылочный
0 lirt82
 
23.06.25
09:45
Из базы источника в файл выгрузки записывается доп. реквизит "Завод" с типом строка, нужно в базе приемнике настроить ПСК Производитель https://iimg.su/i/X43kL4
Чтобы из базы источника строковое значение название завода-производителя напрм. "Альфа" в базе приемнике заполнилось реквизитом ссылочного типа Справочники.Производители. Скорее всего использовать метод Справочники.Производители.НайтиПоНаименованию("Альфа") ?
В обработчике перед выгрузкой ПСК Производитель сделал условие на выгрузку заполненного значения доп. реквизита.
1 Ёпрст
 
гуру
23.06.25
09:54
Источник - пусто, приемник, тип справочник.нужный, галка поиск по наименованию, в наименовании перед выгрузкой значение=источник.твойстроковый реквизит.
Усё
2 Ёпрст
 
гуру
23.06.25
09:56
В настройках - галка поиск по полям поиска, если не найден
3 lirt82
 
23.06.25
10:02
(2) да, явно указал
https://iimg.su/i/gBNTpV
4 lirt82
 
23.06.25
14:38
(1) ошибка
Ошибка при отправке данных: Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  Номенклатура  (Справочник: Номенклатура)
    ПКС                    =  26  (--> Производитель)
    Объект                 =  Товары для реализации  (Номенклатура)
    СвойствоПриемника      =  Производитель  (СправочникСсылка.Производители)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Поле объекта не обнаружено (Завод)
    ПозицияМодуля          =  {(2)}:Значение = Источник.Завод;
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(12550)}:Выполнить(ПКС.ПередВыгрузкой);
5 Fedor-1971
 
23.06.25
14:44
(4) так Значение не строка, структура
Значение = новый Структура("Завод", СокрЛП(Источник));
или СписокЗначений для 7.7
как ПКО понять что за строку ты передал? Наименование, полноеНаименование, Адрес?
6 lirt82
 
23.06.25
14:55
(5) не сработало
https://iimg.su/i/c1tjGz
7 lirt82
 
23.06.25
14:59
после обмена в базе приемник, в карточке Номенклатура реквизит Производитель заполняется первым значением из списка справочника
8 Ёпрст
 
гуру
23.06.25
15:00
(6) Значение = Источник.Завод;
9 lirt82
 
23.06.25
15:03
10 lirt82
 
23.06.25
15:04
(8) доп реквизит называется "Номенклатура_Завод"
11 Ёпрст
 
гуру
23.06.25
15:10
(10) да хоть васей.
Можно и вовсе не указывать ничего, а в ПКО Производители в ПКС Наименование в Перед Выгрузкой написать Значение = источник.
В ПКО номенклатура просто твой завод будет источник Завод приемник че те надо по правилу Производители, усё.
12 Fedor-1971
 
23.06.25
15:53
(6) А поиск Производителя как настроен? По наименованию?
тогда Структура("Наименование", СокрЛП(Источник))

(11) Не совсем, в источнике должна быть структура для заполнения объявленных полей. Или в ПКО Производители ловить
код для 7:
ВходящиеДанные = СоздатьОбъект("СписокЗначений");
ВходящиеДанные.Установить("Наименование", Источник);
ну и галочку Получать из входящих данных для Наименования
13 Ёпрст
 
гуру
23.06.25
16:27
(11) для одного наименования структура не нужна, как и входящие данные
14 lirt82
 
24.06.25
06:41
(11) не помогло, также при обмене подставляется первый элемент списка справочника.
https://iimg.su/i/w1vj27
15 lirt82
 
24.06.25
06:56
(12) тоже самое в обоих случаях, реквизит в базе приемник заполняется первым элементом из списка справочника.
https://iimg.su/i/5DyCNv
https://iimg.su/i/dbgtzO
Может быть из-за того что в источнике это доп. реквизит справочника Номенклатура, а в приемнике это ссылочный реквизит объекта спр Номенклатура?
16 lirt82
 
24.06.25
07:05
Если у ПКО Производители ставлю поиск по наименованию, выходит ошибка.
https://iimg.su/i/amIJbx
https://iimg.su/i/gytsya
17 Ёпрст
 
гуру
24.06.25
08:50
(14) на а теперь покажи картинку с самим реквизитом, где и как он в ПКО Номенклатура описан


(16)еще бы..
18 Ёпрст
 
гуру
24.06.25
08:52
(14) ну и галки нет - поиск По Наименованию. Чего ты хочешь ?!
19 Ёпрст
 
гуру
24.06.25
08:56
>>>это доп. реквизит справочника Номенклатура

Этого нет в твоих картинках, совсем.
Если что, это или реквизит табличной части Номенклатура, или в РС сведений хранится, в зависимости от версии конфы.
20 lirt82
 
24.06.25
10:58
21 lirt82
 
24.06.25
11:11
(18) https://iimg.su/i/hsAd86
если эту галку поставить, тогда выходит ошибка при обмене
Ошибка при отправке данных: Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  Производители  (:)
    ПКС                    =  1  (--> Наименование)
    Объект                 =  Структура  (Структура)
    СвойствоПриемника      =  Наименование  (Строка)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
    ПозицияМодуля          =  {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(12550)}:Выполнить(ПКС.ПередВыгрузкой);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(804)}:ВыгрузитьСвойства(Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, ПКО, ПКО.СвойстваПоиска,
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(12803)}:УзелСсылки = ВыгрузитьПоПравилу(Значение, , ИсходящиеДанные, , ИмяПКО, , ВыгрузитьТолькоСсылку, ПКОСвойств, , , , , Ложь,
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(804)}:ВыгрузитьСвойства(Ис
22 Ёпрст
 
гуру
24.06.25
11:13
(20) п...ц
23 Ёпрст
 
гуру
24.06.25
11:14
Ты правда не понимаешь, какую ересь сделал?
24 Ёпрст
 
гуру
24.06.25
11:17
(21) выкинуть на галку получать из входящих данных.
А в (20) вставить получение реквизита по-человечьи. А не пихать саму номенклатуру.Если не передаешь все доп реквизиты, то получай значение запросом к тч номенклатуры с условием на ссылку и нужное значение свойствп.
25 lirt82
 
24.06.25
13:02
(22) https://iimg.su/i/FtWqG4
при таких правилах, в базе приемнике реквизит Производитель объекта справочника Номенклатура заполняется первым элементом списка справочника Производители.
26 lirt82
 
24.06.25
13:04
в ПКС Производитель, в обработчике "Перед выгрузкой" если поставить код
Если ЗначениеЗаполнено(Строка(Источник)) Тогда
    Значение = Источник;
КонецЕсли;
все равно в базе приемнике реквизит Производитель объекта справочника Номенклатура заполняется первым элементом списка справочника Производители.
27 Ёпрст
 
гуру
24.06.25
14:12
(25) п..ц.
Давай так. Напиши запрос, где ты получишь ссылку и свой реквиизит "завод" с условием на ссылку. Смогешь? Код сюда