Как обратиться к дополнительным реквизитам номенклатуры

Обратиться к доп.реквизиту номенклатуры в общем модуле

Я
   HeartQuake-Z

15.12.16 — 14:31

подскажите плиз как

создал подписку, обработка проведения

создал общий модуль, в подписке указал

создал доп реквизит номенклатуры

мне надо сделать: если допреквизит истина тогда отказ

доп реквизит создал в 1с предприятии

  

Партнерская программа EFSOL Oblako

   HeartQuake-Z

1 — 15.12.16 — 15:01

Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(«Запрет штучного товара»);

         Отбор =  Источник.Товары[0].Номенклатура.ДополнительныеРеквизиты.НайтиСтроки(Новый структура(«Свойство»,ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(«Запрет штучного товара»)));

         Для каждого Строка из отбор цикл

             Если Строка.Свойство = Истина Тогда

                 Отказ = Истина

             КонецЕсли;

             КонецЦикла;

   HeartQuake-Z

2 — 15.12.16 — 15:01

пишет, что Строка.Свойство = ложь

хотя в предприятии галка стоит

   HeartQuake-Z

3 — 15.12.16 — 15:07

а нет, бред какой то вообще написал

   azernot

4 — 15.12.16 — 15:11

Строка.Свойство — это у тебя

ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(«Запрет штучного товара»)

Очевидно, тебе надо что-то типа

Строка.Значение

Но правильнее проверять запросом.

   HeartQuake-Z

5 — 15.12.16 — 15:13

(4) Сейчас надо так сделать

я просто помощник

   HeartQuake-Z

6 — 15.12.16 — 15:22

(4) чот не соображу как правильно наисать

   azernot

7 — 15.12.16 — 15:23

Для каждого Строка из отбор цикл

             Если Строка.ЗНАЧЕНИЕ= Истина Тогда

                 Отказ = Истина

             КонецЕсли;

             КонецЦикла;

   HeartQuake-Z

8 — 15.12.16 — 15:29

(7) Спасибо, а от куда взялось значение?

   azernot

9 — 15.12.16 — 15:37

(8) «Значение» — это реквизит табличной части «ДополнительныеРеквизитыИСведения» справочника «Номенклатура»

Мне кажется, проверять только первую строку документа — контрпродуктивно.

Попробуй вот такую конструкцию:

    Запрос = Новый Запрос;

    Запрос.Текст =

        «ВЫБРАТЬ

        |    РеализацияТоваровУслугТовары.НомерСтроки,

        |    РеализацияТоваровУслугТовары.Номенклатура,

        |    ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура)

        |ИЗ

        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты

        |        ПО РеализацияТоваровУслугТовары.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка

        |            И (НоменклатураДополнительныеРеквизиты.Свойство = &Свойство)

        |            И (НоменклатураДополнительныеРеквизиты.Значение = ИСТИНА)

        |ГДЕ

        |    РеализацияТоваровУслугТовары.Ссылка = &СсылкаНаДокумент»;

    
        
    Запрос.Текст = СтрЗаменить(Запрос.Текст, «РеализацияТоваровУслуг», Источник.Метаданные().Имя);    

    Запрос.УстановитьПараметр(«Свойство», ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(«Запрет штучного товара»));

    Запрос.УстановитьПараметр(«СсылкаНаДокумент», Источник.Ссылка);

    
    РезультатЗапроса = Запрос.Выполнить();

    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        ТекстСообщения = «В строке №»+ВыборкаДетальныеЗаписи.НомерСтроки+ » обнаружена номенклатура «+ВыборкаДетальныеЗаписи.НоменклатураПредставление+» с запретом штучного товара»+

        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, Источник.Ссылка,,, Отказ);

    КонецЦикла;

   HeartQuake-Z

10 — 15.12.16 — 15:50

{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1591)}: Ошибка при вызове метода контекста (Записать)

    Результат = Форма.Записать(ПараметрыЗаписи);

по причине:

Ошибка при выполнении обработчика — ‘ОбработкаПроведения’

по причине:

{ОбщийМодуль.ОбщийМодуль1.Модуль(34)}: Обращение к процедуре объекта как к функции (СообщитьПользователю)

    Результат = Форма.Записать(ПараметрыЗаписи);

по причине:

Ошибка при выполнении обработчика — ‘ОбработкаПроведения’

по причине:

{ОбщийМодуль.ОбщийМодуль1.Модуль(34)}: Обращение к процедуре объекта как к функции (СообщитьПользователю)

{ОбщийМодуль.ОбщийМодуль1.Модуль(34)}: Обращение к процедуре объекта как к функции (СообщитьПользователю)

        ТекстСообщения = «В строке №»+ВыборкаДетальныеЗаписи.НомерСтроки+ » обнаружена номенклатура «+ВыборкаДетальныеЗаписи.НоменклатураПредставление+» с запретом штучного товара»+

   azernot

11 — 15.12.16 — 15:53

ТекстСообщения = «В строке №»+ВыборкаДетальныеЗаписи.НомерСтроки+ » обнаружена номенклатура «+ВыборкаДетальныеЗаписи.НоменклатураПредставление+» с запретом штучного товара»+

Заменить на

ТекстСообщения = «В строке №»+ВыборкаДетальныеЗаписи.НомерСтроки+ » обнаружена номенклатура «+ВыборкаДетальныеЗаписи.НоменклатураПредставление+» с запретом штучного товара»;

   HeartQuake-Z

12 — 15.12.16 — 15:57

(11) миллион сообщений одинаковых с текстом)) из-за цикла

   azernot

13 — 15.12.16 — 16:03

(12) Одинаковых быть не должно. Они должны отличаться номером строки документа и номенклатурой.

   azernot

14 — 15.12.16 — 16:10

+(13)

Впрочем, если не нужны никакие сообщения, то вот

    Запрос = Новый Запрос;

    Запрос.Текст =

        «ВЫБРАТЬ ПЕРВЫЕ 1

        |    Истина КАК НаличиеНоменклатурыСЗапретом

        |ИЗ

        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты

        |        ПО РеализацияТоваровУслугТовары.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка

        |            И (НоменклатураДополнительныеРеквизиты.Свойство = &Свойство)

        |            И (НоменклатураДополнительныеРеквизиты.Значение = ИСТИНА)

        |ГДЕ

        |    РеализацияТоваровУслугТовары.Ссылка = &СсылкаНаДокумент»;

    
        
    Запрос.Текст = СтрЗаменить(Запрос.Текст, «РеализацияТоваровУслуг», Источник.Метаданные().Имя);    

    Запрос.УстановитьПараметр(«Свойство», ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(«Запрет штучного товара»));

    Запрос.УстановитьПараметр(«СсылкаНаДокумент», Источник.Ссылка);

    
    Отказ = НЕ Запрос.Выполнить().Пустой();

   HeartQuake-Z

15 — 16.12.16 — 07:33

(14) СОри, вчера ответить не успел, выгоняют ровно в 18 00 :)

спасибо!

  

HeartQuake-Z

16 — 16.12.16 — 07:52

Если кому не трудно, подскажите примерно как это сделать:

При набивании заказа через подбор товара необходимо по умолчанию, чтобы выбиралась единица измерения отличная от единицы хранения

так и не сообразил)

3 / 2 / 2

Регистрация: 23.03.2011

Сообщений: 91

1

Обработка заполнение дополнительного реквизита

11.06.2019, 19:17. Показов 15065. Ответов 11


здравствуйте! Есть справочник — «Номенклатура». В виде номенклатуры добавлен дополнительный реквизит — «ГОСТ». Нужно из поля — «Описание» перенести данные в доп. реквизит. Запрос написал, который вытаскивает наименование номенклатуры и описание, чтобы бегать в цикле по каждой записи. Подскажите как обратиться к доп реквизиту конкретной номенклатуры? и как после в доп реквизит записать данные?



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,394

11.06.2019, 20:15

2

Lexa2011, Данные доп свойств хранятся в срравочнике ЗначенияДополнительныйСвойств, а владелец — ПВХ ДополнительныеРеквизитыИСведения (ваш ГОСТ)



1



3 / 2 / 2

Регистрация: 23.03.2011

Сообщений: 91

13.06.2019, 06:53

 [ТС]

3

ПВХ ДополнительныеРеквизитыИСведения есть, а справочника ЗначенияДополнительныхСвойств не нашел.
Конфигурация ERP УП2

Добавлено через 1 час 5 минут
polax, спасибо. все получилось



0



Lexa2011

3 / 2 / 2

Регистрация: 23.03.2011

Сообщений: 91

13.06.2019, 11:48

 [ТС]

4

не совсем правильно получается.
делаю так

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Вставить содержимое обработчика.
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Номенклатура.Код КАК Код,
        |   Номенклатура.Наименование КАК Наименование,
        |   Номенклатура.Описание КАК Описание
        |ИЗ
        |   Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |   Номенклатура.Описание <> &Описание";
    
    Запрос.УстановитьПараметр("Описание", "");
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
        //ЗаписатьЗначениеДопРеквизита(ВыборкаДетальныеЗаписи.ДополнительныеРеквизиты.Колонки.Ссылка,
        //          ВыборкаДетальныеЗаписи.ДополнительныеРеквизиты.Колонки.Свойство,
        //          ВыборкаДетальныеЗаписи.Описание);
        МояНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Наименование).ПолучитьОбъект();
        МояНоменклатура.Описание = "";
        МояНовыйРеквизит = МояНоменклатура.ДополнительныеРеквизиты.Добавить();
        МояНовыйРеквизит.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ГОСТ");
        МояНовыйРеквизит.Значение = ВыборкаДетальныеЗаписи.Описание;
        МояНоменклатура.Записать();
        Сообщить(МояНоменклатура.Наименование + " " + ВыборкаДетальныеЗаписи.Описание)
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

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

Обработка заполнение дополнительного реквизита



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,394

13.06.2019, 13:50

5

Цитата
Сообщение от Lexa2011
Посмотреть сообщение

МояНовыйРеквизит = МояНоменклатура.ДополнительныеРеквизиты.Добавить() ;

Дополнительный реквизит ГОСТ уже есть, добавлять его не надо повторно, отсюда задвоение. Добавлять надо только новое значение этого доп реквизита



0



Lexa2011

3 / 2 / 2

Регистрация: 23.03.2011

Сообщений: 91

13.06.2019, 15:03

 [ТС]

6

т.е вместо этого

1C
1
2
3
МояНовыйРеквизит = МояНоменклатура.ДополнительныеРеквизиты.Добавить();
        МояНовыйРеквизит.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ГОСТ");
        МояНовыйРеквизит.Значение = ВыборкаДетальныеЗаписи.Описание;

вот так

1C
1
2
МояНовыйРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ГОСТ");
МояНовыйРеквизит.Значение = ВыборкаДетальныеЗаписи.Описание;



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,394

13.06.2019, 20:41

7

Lexa2011, да именно так



0



3 / 2 / 2

Регистрация: 23.03.2011

Сообщений: 91

14.06.2019, 08:48

 [ТС]

8

ругается:
Значение не является значением объектного типа (Значение)
МояНовыйРеквизит.Значение = ВыборкаДетальныеЗаписи.Описание;

Добавлено через 4 часа 22 минуты
если так написать, то реквизит не находит
МояНовыйРеквизит = МояНоменклатура.ДополнительныеРеквизиты.Найти(«ГОС Т»);

Добавлено через 42 секунды
МояНовыйРеквизит — неопределено



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,394

15.06.2019, 22:09

9

Lexa2011, Значения доп свойств — это ЭЛЕМЕНТ справочника ЗначенияСвойствОбъектов (для ЕРП)
Поэтому создаешь элемент справочника, а владелец элемента — ПВХ доп реквизит:

Цитата
Сообщение от Lexa2011
Посмотреть сообщение

МояНовыйРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСв едения.НайтиПоНаименованию(«ГОСТ»);



0



Lexa2011

3 / 2 / 2

Регистрация: 23.03.2011

Сообщений: 91

18.06.2019, 09:24

 [ТС]

10

не понимаю, что нужно написать:

Lexa2011, Значения доп свойств — это ЭЛЕМЕНТ справочника ЗначенияСвойствОбъектов (для ЕРП)
Поэтому создаешь элемент справочника, а владелец элемента — ПВХ доп реквизит:

нашел вот такую процедуру в общих модулях, которая записывает доп реквизиты — УправлениеСвойствами.ЗаписатьСвойстваУОбъекта

сделал так:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Процедура ЗаполнитьНаСервере()
    // Вставить содержимое обработчика.
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Номенклатура.Код КАК Код,
        |   Номенклатура.Наименование КАК Наименование,
        |   Номенклатура.Описание КАК Описание
        |ИЗ
        |   Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |   Номенклатура.Описание <> &Описание";
    
    Запрос.УстановитьПараметр("Описание", "");
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
        МояНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(ВыборкаДетальныеЗаписи.Наименование);
        ДопРеквизитГОСТ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок", "ГОСТ");
        
        ТаблицаДопРеквизитов = Новый ТаблицаЗначений;
        ТаблицаДопРеквизитов.Колонки.Добавить("Свойство", Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения"));
        ТаблицаДопРеквизитов.Колонки.Добавить("Значение", Новый ОписаниеТипов("Строка"));
        
        НовыйРекизит = ТаблицаДопРеквизитов.Добавить();
        НовыйРекизит.Свойство = ДопРеквизитГОСТ;
        НовыйРекизит.Значение = ВыборкаДетальныеЗаписи.Описание;
        
        УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(МояНоменклатура, ТаблицаДопРеквизитов);
 
        Сообщить(МояНоменклатура.Наименование + " " + ВыборкаДетальныеЗаписи.Описание)
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецПроцедуры

ошибок нет, но и ни чего не сохраняется.



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,394

18.06.2019, 22:33

11

Lexa2011,

Цитата
Сообщение от polax
Посмотреть сообщение

Поэтому создаешь элемент справочника, а владелец элемента — ПВХ доп реквизит

Вот КАК объяснить понятней? Есть ПВХ, а его значения хранятся в Справочнике. Чтобы записать новое значение надо СОЗДАТЬ новый элемент этого справочника



0



3 / 2 / 2

Регистрация: 23.03.2011

Сообщений: 91

19.06.2019, 04:19

 [ТС]

12

спасибо, за помощь

вместо поиска по имени реквизита:
ДопРеквизитГОСТ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСв едения.НайтиПоНаименованию(«ГОСТ»);

лучше обратиться по имени доп реквизита для разработчика. и все нашлось и записалось.
ДопРеквизитГОСТ = «ГОСТ_ccbd71b2f88c42cfb5333bea2d7f9c26»;

а просто по имени не понятно что он находил и куда пытался записывать

задача решена



0



Опубликовано в Статьи по 1С 27.10.2018

В библиотеке стандартных подсистем 1С дополнительные реквизиты и сведения включены и активно применяются. Эти механизмы позволяют добавить дополнительный реквизит к объекту метаданных без изменения типовой конфигурации. Принцип работы дополнительных реквизитов и сведений, их добавление и получение значений.

Отличие дополнительного реквизита от дополнительного сведения в том, что

  • Дополнительные реквизиты – список реквизитов, доступных в форме документа или справочника; причем эти реквизиты хранятся в табличной части объекта, к которому они добавлены;
  • Дополнительные сведения – список значений доступных по дополнительной кнопке; причем доп. сведения  хранятся в  отдельном регистре.

После ввода дополнительного реквизита или сведения 1С, можно создать подключаемую обработку, где считать введенные дополнительные данные и задать необходимую логику обработки данных, в которой использовать этот реквизит или сведение.

Как получить 1С дополнительные реквизиты и сведения программно:

Для получения дополнительных данных используем запрос, в котором получим значение дополнительных реквизитов и сведений:

////
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДополнительныеСведения.Свойство,
| ДополнительныеСведения.Значение
|ИЗ
| РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
|ГДЕ
| ДополнительныеСведения.Объект = &Объект»;
Запрос.УстановитьПараметр(«Объект», СсылкаДокумент);
////

Для получения дополнительного реквизита использую код вида:

////
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Свойство,
| НоменклатураДополнительныеРеквизиты.Значение
|ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
|ГДЕ
| НоменклатураДополнительныеРеквизиты.Свойство = &Свойство
| И НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка»;
Запрос.УстановитьПараметр(«Ссылка», СсылкаДокумент);
Запрос.УстановитьПараметр(«Свойство», ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(«Коэффициент бруто»));
////

Теперь вы без труда сможете добавить и получить необходимые дополнительные 1С данные без снятия конфигурации 1С с поддержки и изменения типовой конфигурации. Без сомнения, такой инструмент должен быть в арсенале 1С программиста и активно использоваться в работе.

Дополнительные реквизиты в 1с 8 представляют из себя специальную табличную часть у некоторых документов и справочников. В ней хранятся дополнительные данные, касающиеся данного объекта метаданных. Данный механизм реализован только в конфигурация работающих на управляемом приложении. По своему назначению дополнительные реквизиты напоминают дополнительные сведения, разница в том, что доп. сведения хранятся в отдельном регистре, это их плюс, но зато доп. реквизиты автоматически выводятся на форму объекта. В этой статье будет рассказано, как получать и записывать дополнительные реквизиты программно.

Получить дополнительные реквизиты программно

Функция получает значение дополнительного реквизита объекта по ссылке и свойству.

  • Ссылка. Тип: Любая ссылка. Ссылка на искомый объект;
  • Свойство. Тип: План видов характеристик ДополнительныеРеквизитыИСведения. Дополнительное свойство.

Код:

Функция ПолучитьЗначениеДопРеквизита(Ссылка, Свойство) Экспорт

    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Свойство",Свойство);
    Массив = Ссылка.ДополнительныеРеквизиты.НайтиСтроки(ПараметрыОтбора);

    Если Массив.Количество() = 0 Тогда
        Возврат Неопределено;
    Иначе
        Возврат Массив[0].Значение;
    КонецЕсли;

КонецФункции

Записать дополнительные реквизиты программно

Функция записывает значение доп. реквизита объекта по ссылке и свойству.

  • Ссылка. Тип: Любая ссылка. Ссылка на искомый объект;
  • Свойство. Тип: План видов характеристик ДополнительныеРеквизитыИСведения. Дополнительное свойство;
  • Значение. Тип: заданный для данного свойства.
Функция ЗаписатьЗначениеДопРеквизита(Ссылка, Свойство, Значение)
	
    Попытка
        ОбъектСсылки = Ссылка.ПолучитьОбъект();
		
	ПараметрыОтбора = Новый Структура;
	ПараметрыОтбора.Вставить("Свойство",Свойство);
	Массив = ОбъектСсылки.ДополнительныеРеквизиты.НайтиСтроки(ПараметрыОтбора);
		
	Если Массив.Количество() = 0 Тогда
            НовоеСвойство = ОбъектСсылки.ДополнительныеРеквизиты.Добавить();
	    НовоеСвойство.Свойство = Свойство;
	    НовоеСвойство.Значение = Значение;
	Иначе
	    Массив[0].Значение = Значение;
	КонецЕсли;	
	
	ОбъектСсылки.Записать();	
    Исключение
	Возврат Ложь;
    КонецПопытки
	
КонецФункции

Если вы еще не знаете, как правильно работать с механизмом дополнительных сведений в 1с 8, то прочтите об этом в статье 1С дополнительные сведения запись и получение.


В новых редакциях программ 1С была существенно усовершенствована подсистема дополнительных реквизитов Дополнительные реквизиты и сведения. Эта подсистема дает возможность пользователю самим добавлять реквизиты и сведения к объектам программы не прибегая к помощи программиста.

Содержание

  • Дополнительные реквизиты и сведения в 1С
  • Настройка подсистемы Дополнительные реквизиты и дополнительные сведения на примере 1С 8.3 Бухгалтерия 3.0
    • Добавление дополнительных реквизитов
    • Добавление дополнительных сведений к форме

Дополнительные реквизиты являются неотъемлемой часть справочника, хранятся в самом объекте и отображаются на его форме. С их помощью описываются свойства объекта. После их настройки они появляются на форме объекта и становятся доступны для заполнения. Они доступны тем же пользователям, которым доступен и сам объект. Дополнительные реквизиты лучше использовать для отражения общедоступной информации.

Дополнительные сведения — не видны всем, они  хранятся в регистре сведений и доступны по команде из элемента  справочника или документа. Они вводятся в отдельном окне Дополнительные сведения, а также в формах списков документов и справочников и могут быть доступны для просмотра пользователям, доступ которым к объекту закрыт.

Настройка подсистемы Дополнительные реквизиты и дополнительные сведения на примере 1С 8.3 Бухгалтерия 3.0

Включить возможность создавать дополнительные реквизиты и сведения и настроить их можно в разделе Администрирование — Общие настройки. Для этого в подразделе Дополнительные реквизиты и сведения установите галочки, разрешающие добавлять эти элементы.

Добавление дополнительных реквизитов

Для добавления и настройки дополнительных реквизитов в 1С 8.3 перейдем по ссылке Дополнительные реквизиты. В окне перечислены объекты, к которым можем добавить реквизиты.

Для примера, создадим несколько дополнительных реквизитов к справочнику Номенклатура. Выберем элемент, к которому будем создавать реквизит (в нашем примере Номенклатура) и нажмем кнопку Добавить — Новый.

Для примера создадим Дополнительный реквизит, значения которого будут заданы и их необходимо будет выбрать из списка. Назовем его Доп. реквизит 1 (выбор значения). В открывшейся форме зададим его Наименование, Тип значения оставляем Дополнительный реквизит. При желании можно установить флажок Выводить в виде гиперссылки, соответственно в форме элемента данное поле будет представлено в виде гиперссылки. Настраиваем видимость, доступность и обязательность заполнения и по желанию заполнить следующие поля.

На вкладке Значения можем перечислить значения нашего реквизита, при этом значения можно объединять в группы. Например, Значение доп. реквизита 1, значение доп. реквизита 2, значение доп. реквизита 3.

Нажимаем Записать и закрыть и также сохраняем наш созданный реквизит.

Создадим еще один реквизит, назовем его Доп. реквизит — 2 (установка галочки). Для добавления реквизита галочка, флажок установим Тип реквизита Булево. При смене реквизита меняются настройки формы. В данном случае нам предлагается установить настройки видимости и доступности, установить всплывающую подсказку.

Сохраняем реквизит, нажав кнопку Записать и закрыть.

Введем для примера еще один реквизит с Типом значения Строка (назовем его для примера Доп. реквизит — 3 (текст)).

Все настройки интуитивно понятны.

Так, при создании дополнительных реквизитов в 1С, при выборе Тип значения реквизита, мы можем использовать разные варианты и в зависимости от его выбора немного меняется настройка создаваемого реквизита.

Итак, мы создали три дополнительных реквизита к справочнику Номенклатура.

Посмотрим, как они отобразятся в форме элемента справочника. Откроем элемент справочника Номенклатура и зайдем в раздел Дополнительные реквизиты, внизу формы.

Мы видим, три наших добавленных реквизита. В первом реквизите — поле с кнопкой выбора значений, во втором — возможность установить галочку, в третьем — обычное текстовое поле и наши всплывающие подсказки, которые прописали в настройках.

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

Добавление дополнительных сведений к форме

Рассмотрим пример добавления дополнительных сведений в 1С 8.3. Для этого перейдем по ссылке Дополнительные сведения, в разделе Администрирование — Общие настройки — Дополнительные реквизиты и сведения. Выберем элемент для добавления сведений и нажимаем кнопку Создать — Новое.

Новый объект в предложенный список ввести нельзя. В списке отражены все документы и часть справочников, для которых можно добавить Дополнительные сведения. Дополнительные реквизиты можно добавить лишь к справочникам.

Добавление и настройка дополнительных сведений в 1С производится аналогично дополнительным реквизитам.

Для примера создадим одно дополнительное сведение для справочника Сотрудники, где выбор будет производится из справочника Физические лица, для указания лица, которому подчиняется данный сотрудник (назовем его просто Дополнительные сведения).

Откроем справочник Сотрудники и проверим добавление сведений. Эта информация скрыта из формы элемента и открывается нажатием кнопки Еще — Дополнительные сведения.

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

Аналогично можно добавить Дополнительные сведения и к документам. Окно ввода дополнительных сведений также будет доступно в кнопке Еще — Дополнительные сведения документа.

Данная команда доступна как из самого документа, так и из журнала документов.

См. также:

  • Печать ценников в 1С
  • Очистка кэш 1С 8.3
  • Журнал регистрации в 1С 8.3
  • Как сделать копию базы 1С 8.3
  • Загрузка из Excel в 1С 8.3
  • Как выгрузить документ, отчет из 1С 8.3 в Excel

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

1с дополнительные реквизиты и сведения

В библиотеке стандартных подсистем 1С дополнительные реквизиты и сведения включены и активно применяются. Эти механизмы позволяют добавить дополнительный реквизит к объекту метаданных без изменения типовой конфигурации. В публикации хочу продемонстрировать работу дополнительных реквизитов и сведений, их добавление и получение значений.

Краткое описание механизма дополнительных реквизитов и сведений

Пример добавление дополнительного реквизита вручную вы можете посмотреть в публикации Брутто в ТОРГ12, где добавляется новый реквизит «Коэффициент брутто» в справочнике «Номенклатура». Таким образом можно добавлять реквизиты всех известных типов (число, строка, булево, список значений, ссылки на справочники и т.д.) к распространенным справочникам и документам 1С.

Отличие дополнительного реквизита от дополнительного сведения в том, что

  • Дополнительные реквизиты – список реквизитов, доступных в форме документа или справочника; причем эти реквизиты хранятся в табличной части объекта, к которому они добавлены;
  • Дополнительные сведения – список значений доступных по дополнительной кнопке; причем доп. сведения  хранятся в  отдельном регистре.

После ввода дополнительного реквизита или сведения 1С, можно создать подключаемую обработку, где считать введенные дополнительные данные и задать необходимую логику обработки данных, в которой использовать этот реквизит или сведение.

Для получения дополнительных данных приведу примеры запросов, в которых получу 1С дополнительные реквизиты и сведения.

Для получения дополнительного сведения использую запрос вида:

Запрос = Новый Запрос;
Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ДополнительныеСведения.Свойство,
	|	ДополнительныеСведения.Значение
	|ИЗ
	|	РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
	|ГДЕ
	|	ДополнительныеСведения.Объект = &Объект";
Запрос.УстановитьПараметр("Объект", СсылкаДокумент);

Для получения дополнительного реквизита использую код вида (пример получения коэффициента брутто в ТОРГ12):

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	НоменклатураДополнительныеРеквизиты.Свойство,
	|	НоменклатураДополнительныеРеквизиты.Значение
	|ИЗ
	|	Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
	|ГДЕ
	|	НоменклатураДополнительныеРеквизиты.Свойство = &Свойство
	|	И НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаДокумент);
Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Коэффициент бруто"));

Теперь вы без труда сможете добавить и получить необходимые дополнительные 1С данные без снятия конфигурации 1С с поддержки и изменения типовой конфигурации. Без сомнения, такой инструмент должен быть в арсенале 1С программиста и активно использоваться в работе.

Понравилась статья? Поделить с друзьями:
  • Как посчитать рентабельность бизнеса калькулятор онлайн
  • Как оплатить квартплату в сбербанк онлайн по реквизитам
  • Как посчитать стоимость часа при сменном графике работы
  • Как оплатить реквизиты госпошлины через сбербанк онлайн
  • Как правильно делать бизнес план образец для начинающих