Имя: Пароль:
1C
 
1С ERP 2.4 Как найти доп. реквизит контрагента ?
, ,
0 Azgerd
 
11.08.22
09:31
Здравствуйте! Конфигурация 1С ERP 2.4 . В настройках CRM и маркетинг снят флаг с пункта "Независимо вести партнёров и контрагентов" . Появилась необходимость добавить дополнительный реквизит к справочнику контрагентов. В подсистеме "НСИ и администрирование" - "Общие настройки" установил флаг "Дополнительные реквизиты и сведения", перешёл по гиперссылке "Дополнительные реквизиты", в дереве нашёл раздел "Контрагенты" и добавил новый реквизит. Захожу в справочник контрагентов, на вкладке "Дополнительно" этого нового реквизита нет. По кнопке "Ещё" перехожу в раздел "Изменить состав дополнительных реквизитов" - перехожу на дерево разделов "Партнеры" - "Общие" (для меня было неожиданно, что по-умолчанию из справочника "Контрагенты" я попал в раздел "Партнеры" - "Общие", а не в раздел "Контрагенты"), нажал "Добавить" выбрал меню "Из другого набора" и скопировал реквизит из набора "Контрагенты" в набор  "Партнеры" - "Общие".
В справочнике "Контрагенты" на вкладке "Дополнительно" появился этот реквизит. Необходимо через внешнюю обработку читать и изменять этот реквизит. В пользовательском режиме, в консоле запросов  пытаюсь найти, где хранятся значения эт ого реквизита. Сделал запрос к табличной части КонтрагентыДополнительныеРеквизиты - пусто! Попробовал сделать запрос на Табличную часть справочника "Партнёры" ПартнерыДополнительныеРеквизиты - тоже пусто... Подскажите в какой таблице  искать значения этого  доп. реквизита ?
1 Timon1405
 
11.08.22
09:46
>>Сделал запрос к табличной части КонтрагентыДополнительныеРеквизиты - пусто!
и будет пусто пока не заведёте значение реквизита хотя бы в одном контрагенте
2 delgadoo
 
11.08.22
09:49
(0) вы же не указали значение в добавленном реквизите контрагента, поэтому при чтении табличной части у вас ничего нет.
Свойство - это ПВХ "Дополнительные реквизиты и сведения", значение - справочник "Дополнительные значения". Используя эти метаданные добавляйте строки программно.
3 Azgerd
 
11.08.22
09:52
(1) Значения в доп. реквизите есть, по некоторым контрагентам значения доп.реквизита заполнены.
4 shuhard
 
11.08.22
10:04
(3) и в ЖР ни чего нет ?
5 Azgerd
 
11.08.22
10:05
(2) Значение доп.реквизитов хранятся в регистре сведений "ДополнительныеСведения" В котором измерение "Объект" - (составной тип) , в кот. в моём случае элемент справочника Контрагент, измерение "Свойство" тип  - ПВХ (сам доп. ревизит) и ресурс "Значение". Например у доп. реквизита значение булево, как в запросе отобрать контрагентов, у которых значение доп. реквизита = Истина ?
6 Azgerd
 
11.08.22
10:06
(4) ЖР - журнал регистрации ? А он здесь причем ?
7 delgadoo
 
11.08.22
10:26
(5)
# ВЫБРАТЬ
    ДополнительныеСведения.Объект КАК Объект
ИЗ
    РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
ГДЕ
    ДополнительныеСведения.Свойство = &ВашеСвойство
    И ДополнительныеСведения.Значение = ИСТИНА
#
как вариант
у "ВашеСвойство" (свойство ПВХ) есть реквизит "Имя", можно свойство находить исходя из значения данного реквизита.

#
ГДЕ
    ДополнительныеСведения.Свойство.Имя = "ИмяСвойства"
#
8 Azgerd
 
11.08.22
10:36
(7) Спасибо !
9 Timon1405
 
11.08.22
10:41
(5) значения доп. реквизитов хранятся в ТЧ объекта, а значения доп. свойств в РС
чтобы получить свойство изучите функцию, там например есть "разрешенные" в запросе, про которое часто забывают
УправлениеСвойствами.ЗначениеСвойства(Объект, Свойство, КодЯзыка = "")
и подумайте как ее применить к нескольким объектам
10 Azgerd
 
12.08.22
10:13
Все же не могу добраться к значению доп. реквизита контрагента... Есть подозрение, что это связанно с особенностями 1C ERP. Для проверки создал доп. реквизит для Номенклатуры, с именем ВыгрузкаНоменклатуры - тип булево. На форме справочника этот реквизит появился,
выполнил код
    СсылкаНоменклатура = Справочники.Номенклатура.НайтиПоКоду("00-00009665");
    ДопРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВыгрузкаНоменклатуры");
    ТаблицаЗначение = СсылкаНоменклатура.ДополнительныеРеквизиты.Найти(ДопРеквизит);
    Значение = ТаблицаЗначение.Значение;


Значение получил, все прекрасно! Делаю тоже самое для справочника Контрагенты
    СсылкаКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН","XXXXXXXXXX");
    ДопРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВыгрузкаКонтрагентов");
    ТаблицаЗначение = СсылкаНоменклатура.ДополнительныеРеквизиты.Найти(ДопРеквизит);
    Значение = ТаблицаЗначение.Значение;


СсылкаКонтрагент - получил нужного контрагента, ДопРеквизит - нашелся, ТаблицаЗначение - НЕОПРЕДЕЛЕНО! Соответственно не получил и Значение.
Для интереса делаю запрос к таблице НоменклатураДополнительныеРеквизиты - там есть записи с доп.реквизитом, делаю запрос к таблице
КонтрагентыДополнительныеРеквизиты - пусто!!! Хотя на форме элемента справочника Контрагенты этот реквизит есть и заполнен. Получается Доп.реквизиты именно для справочника Контрагенты не хранятся в табличной части Контрагенты.ДополнительныеРеквизиты... Тогда где их искать ?
11 rsv
 
12.08.22
10:35
(10) в бухии как в (9) . Работает. Реквизиты в табличной части , свойства в регистре.
12 Azgerd
 
12.08.22
11:36
Вроде докопался...При снятом флаге в настройке ERP "Независимо вести партнеров и контрагентов" = Ложь, доп.реквизиты, кот. ввели в справочнике контрагентов хранятся в табличной части доп.реквизитов справочника партнеров, а в табличной части доп.реквизитов контрагентов - пусто.
13 AlvlSpb
 
12.08.22
11:52
(10)  СсылкаКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН","XXXXXXXXXX");
    ДопРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВыгрузкаКонтрагентов");
    ТаблицаЗначение = СсылкаНоменклатура.ДополнительныеРеквизиты.Найти(ДопРеквизит);
    Значение = ТаблицаЗначение.Значение;

ТабюлицаЗначение по контрагенту пытаешься получить из таб ДополнительныеРеквизиты справочника номенклатура (СсылкаНоменклатура.ДополнительныеРеквизиты.Найти(ДопРеквизит)). естественно там нет такого реквизита
14 Azgerd
 
12.08.22
13:29
(13) Да это была ошибка, но дело не в этом, см (12)