как получить дополнительный реквизит документа в обработке УНФ.
Как получить дополнительный реквизит документа в обработке, с возможностью его программно менять.
Я создаю доп реквизит с типом булево в документе РасходнаяНакладная. Мне нужно программно изменить этот реквизит.
Например Если я изменяю программно документ Расходная накладная, то ставиться галочка в доп реквизите.
Я создаю доп реквизит с типом булево в документе РасходнаяНакладная. Мне нужно программно изменить этот реквизит.
Например Если я изменяю программно документ Расходная накладная, то ставиться галочка в доп реквизите.
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Синхронизация и обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена
- АРМ Начальника производства и АРМ Рабочего цеха для 1С:УНФ. Цифровое производство малого и среднего бизнеса
- Управление запасами в 1C:УНФ. Ордерная схема. Складские ордера. Плюсы и минусы. Для чего она нужна?
- SynchroWB — интеграция 1С и Wildberries: автоматизация заказов и остатков по API с УТ, КА, ERP, УНФ, Розница 3
Найденные решения
ДопРеквизитПроверено = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВыведенИзОборота");
СтрокаТЧ = СсылкаНаОбъект.ДополнительныеРеквизиты.Найти(ДопРеквизитПроверено, "Свойство");//Пусть результатом поиска будут "ЕстьСтроки"
Если СтрокаТЧ = Неопределено Тогда
СтрокаТЧ = СсылкаНаОбъект.ДополнительныеРеквизиты.Добавить();
СтрокаТЧ.Свойство = ДопРеквизитПроверено;
СТрокаТЧ.Значение = Истина;
Иначе
СТрокаТЧ.Значение = Истина;
КонецЕсли;
ПоказатьСработал этот код.
Спасибо большое за помощь.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Речь о механизме допреквизитов?
Это табличная часть объекта.
Читайте её (запросом), параметры - ссылка на объект и идентификатор допреквизита, выгружайте (получаете таблицу значений).
Результат запроса пустой - нет строки с допреквизитом.
Не пустой - есть.
Получайте объект (документ), и далее работайте с этой табличной частью документа.
Это табличная часть объекта.
Читайте её (запросом), параметры - ссылка на объект и идентификатор допреквизита, выгружайте (получаете таблицу значений).
Результат запроса пустой - нет строки с допреквизитом.
Не пустой - есть.
Получайте объект (документ), и далее работайте с этой табличной частью документа.
(3)
Прочитал ТЧ ДопРеквизиты документа, в запросе выводит только одну запись, где я в режиме предприятия поставил значение доп реквизита истина.
Мне же еще нужно получить доп реквизит , где значение я не указывал, то есть, значение доп реквизита = ложь.
Использовал этот запрос:
Пожалуйста подробнее подскажите что мне делать. Заранее спасибо
личная часть объекта
Прочитал ТЧ ДопРеквизиты документа, в запросе выводит только одну запись, где я в режиме предприятия поставил значение доп реквизита истина.
Мне же еще нужно получить доп реквизит , где значение я не указывал, то есть, значение доп реквизита = ложь.
Использовал этот запрос:
ВЫБРАТЬ
РасходнаяНакладнаяДополнительныеРеквизиты.Ссылка КАК Ссылка,
РасходнаяНакладнаяДополнительныеРеквизиты.Свойство КАК Свойство,
РасходнаяНакладнаяДополнительныеРеквизиты.Значение КАК Значение
ИЗ
Документ.РасходнаяНакладная.ДополнительныеРеквизиты КАК РасходнаяНакладнаяДополнительныеРеквизиты
Пожалуйста подробнее подскажите что мне делать. Заранее спасибо
(3)Далее использвал этот запрос :
Но он либо возвращает пустое значение, либо то в котором Допрек = Истина, а мне же нужно получить документы где доп рек = Ложь, чтобы программно менять на истина
ВЫБРАТЬ
РасходнаяНакладнаяДополнительныеРеквизиты.Ссылка КАК Ссылка,
РасходнаяНакладнаяДополнительныеРеквизиты.Свойство КАК Свойство,
РасходнаяНакладнаяДополнительныеРеквизиты.Значение КАК Значение,
РасходнаяНакладная.Ссылка КАК Ссылка1
ИЗ
Документ.РасходнаяНакладная КАК РасходнаяНакладная
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.ДополнительныеРеквизиты КАК РасходнаяНакладнаяДополнительныеРеквизиты
ПО (РасходнаяНакладнаяДополнительныеРеквизиты.Ссылка = РасходнаяНакладная.Ссылка)
ГДЕ
РасходнаяНакладная.Ссылка = &Ссылка
И РасходнаяНакладнаяДополнительныеРеквизиты.Свойство = &Свойство
ПоказатьНо он либо возвращает пустое значение, либо то в котором Допрек = Истина, а мне же нужно получить документы где доп рек = Ложь, чтобы программно менять на истина
4.
Внестите в допреквизит значение вручную (раз булево, вид допника должен быть "галочка").
Прочитайте его запросом в консоли.
Потом вручную галочку снимите.
Прочитайте его запросом в консоли.
Если ничего в 1С не поменялось, то в данном случае запрос будет "пустой".
Типовой механизм, если допреквизит ставят в значение "ложь", вообще стирает данную строку из табличной части.
По крайней мере, в ЗУПе так. Если у вас также, тогда ориентируйтесь именно на это.
Результат запроса будет возвращать "Пустой" или "Истина"
вы действуйте программно аналогично.
Да, и запрос слишком громоздкий.
Вот проще.
Внестите в допреквизит значение вручную (раз булево, вид допника должен быть "галочка").
Прочитайте его запросом в консоли.
Потом вручную галочку снимите.
Прочитайте его запросом в консоли.
Если ничего в 1С не поменялось, то в данном случае запрос будет "пустой".
Типовой механизм, если допреквизит ставят в значение "ложь", вообще стирает данную строку из табличной части.
По крайней мере, в ЗУПе так. Если у вас также, тогда ориентируйтесь именно на это.
Результат запроса будет возвращать "Пустой" или "Истина"
вы действуйте программно аналогично.
Да, и запрос слишком громоздкий.
Вот проще.
ВЫБРАТЬ
ВашДокументДополнительныеРеквизиты.Значение КАК Значение
ИЗ
Документ.ВашДокумент.ДополнительныеРеквизиты КАК ВашДокументДополнительныеРеквизиты
ГДЕ
ВашДокументДополнительныеРеквизиты.Ссылка = &СсылкаНаДокумент
И ВашДокументДополнительныеРеквизиты.Свойство = &Свойство
И еще. Почему вы не попробуете программный интерфейс?
Я только в ЗУП имею доступ и сужу по нему, но разве у вас нет общего модуля "УправлениеСвойствами" ?
Наверняка у вас тоже есть методы:
- ДобавитьСвойство()
- ДобавитьЗначениеСвойства()
- ПараметрыДобавленияСвойства()
- ПараметрыДобавленияЗначенияСвойства()
- ЗначениеСвойства()
- ЗаписатьСвойстваУОбъекта() и так далее. Все методы этого модуля работают с допреквизитами и допсвойствами.
Я только в ЗУП имею доступ и сужу по нему, но разве у вас нет общего модуля "УправлениеСвойствами" ?
Наверняка у вас тоже есть методы:
- ДобавитьСвойство()
- ДобавитьЗначениеСвойства()
- ПараметрыДобавленияСвойства()
- ПараметрыДобавленияЗначенияСвойства()
- ЗначениеСвойства()
- ЗаписатьСвойстваУОбъекта() и так далее. Все методы этого модуля работают с допреквизитами и допсвойствами.
(7)
Сделал так
Он Добавляет новый доп реквизит. Как добавить свой?
ЗначениеСвойств
Сделал так
ДопРеквизитПроверено = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВыведенИзОборота", Истина);
ЕстьСтроки = СсылкаНаОбъект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ДопРеквизитПроверено));//Пусть результатом поиска будут "ЕстьСтроки"
Если ЕстьСтроки.Количество() = 0 Тогда
СтрокаТЧ = СсылкаНаОбъект.ДополнительныеРеквизиты.Добавить();
СтрокаТЧ.Свойство = ДопРеквизитПроверено;
Иначе
СтрокаТЧ = ЕстьСтроки[0];
КонецЕсли;
СТрокаТЧ.Значение = Истина;
ПоказатьОн Добавляет новый доп реквизит. Как добавить свой?
ДопРеквизитПроверено = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВыведенИзОборота");
СтрокаТЧ = СсылкаНаОбъект.ДополнительныеРеквизиты.Найти(ДопРеквизитПроверено, "Свойство");//Пусть результатом поиска будут "ЕстьСтроки"
Если СтрокаТЧ = Неопределено Тогда
СтрокаТЧ = СсылкаНаОбъект.ДополнительныеРеквизиты.Добавить();
СтрокаТЧ.Свойство = ДопРеквизитПроверено;
СТрокаТЧ.Значение = Истина;
Иначе
СТрокаТЧ.Значение = Истина;
КонецЕсли;
ПоказатьСработал этот код.
Спасибо большое за помощь.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот