По теме из базы знаний
- Использование дополнительных реквизитов и сведений в БП 3.0
- Дополнительные реквизиты и сведения в управляемом приложении - это просто... с БДРС
- Загрузка номенклатуры в УТ11, КА 2, ERP 2, Розница 2 из Excel. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки
- Загрузка и обновление данных номенклатуры, дополнительных реквизитов и сведений, характеристик и наборов упаковок номенклатуры из файлов формата MS Excel, OpenOfficeCalc (ODS), CSV, TXT, DBF, MXL для 1С: УТ, КА, ЕРП, Розница, БП
- 1С:БСП Дополнительные реквизиты и сведения
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) dpagon, например:
И т.п.
Процедура ПриНажатииВыполнить()
Если ЗначениеЗаполнено(НовыйРеквизит) Тогда
Если ЗначениеЗаполнени(НовыйРеквизит2) ТОгда
Что выполнять.....
Иначе Сообщить("Заполните Поле НовыйРеквизит2");
КонецЕсли;
Иначе Сообщить("Заполните Поле НовыйРеквизит");
КонецЕсли;
ПоказатьИ т.п.
У меня реализовано так: в подписку ОбработкаПроверкиЗаполнения для ВнутреннегоДокумента
настройки хранятся в самописном РС Соответствия где храню всякие значения инф.базы по строковым ключам, дабы не искать по наименованию каждый раз. Структура РС видна из запроса.
Процедура ПроверкаОбязательныхРеквизитовОбработкаПроверкиЗаполнения(Источник, Отказ, ПроверяемыеРеквизиты) Экспорт
ДокументОбъект = Источник;
Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВидДокумента) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| н_СоответствияСрезПоследних.Период,
| н_СоответствияСрезПоследних.ИД,
| н_СоответствияСрезПоследних.Соответствие,
| н_СоответствияСрезПоследних.Описание,
| н_СоответствияСрезПоследних.ДопИзмерение
|ИЗ
| РегистрСведений.н_Соответствия.СрезПоследних КАК н_СоответствияСрезПоследних
|ГДЕ
| (н_СоответствияСрезПоследних.Описание = ""ОбязательныйРеквизит""
| ИЛИ н_СоответствияСрезПоследних.Описание = ""ОбязательныйДопРеквизит"")
| И н_СоответствияСрезПоследних.Соответствие = &Соответствие
| И НЕ н_СоответствияСрезПоследних.ДопИзмерение = ""НеИспользовать""";
Запрос.УстановитьПараметр("Соответствие",ДокументОбъект.ВидДокумента);
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Если Результат.Описание = "ОбязательныйРеквизит" Тогда
Попытка
Если НЕ ЗначениеЗаполнено(ДокументОбъект[Результат.ИД]) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Поле %1 не заполнено.'"),
Строка(Результат.ИД)),
ДокументОбъект,
Результат.ИД,,
Отказ);
КонецЕсли;
Исключение
Продолжить;
КонецПопытки;
ИначеЕсли Результат.Описание = "ОбязательныйДопРеквизит" Тогда
Попытка
СвойствоЗаполнено = Ложь;
Для Каждого Стр из ДокументОбъект.ДополнительныеРеквизиты Цикл
Если СокрЛП(Стр.Свойство.Наименование) = СокрЛП(Результат.ИД) Тогда
СвойствоЗаполнено = ЗначениеЗаполнено(Стр.Значение);
КонецЕсли;
КонецЦикла;
Если НЕ СвойствоЗаполнено Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Поле %1 не заполнено.'"),
Строка(Результат.ИД)),
ДокументОбъект,
Результат.ИД,,
Отказ);
КонецЕсли;
Исключение
Продолжить;
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показатьнастройки хранятся в самописном РС Соответствия где храню всякие значения инф.базы по строковым ключам, дабы не искать по наименованию каждый раз. Структура РС видна из запроса.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот