Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Подписка на событие: Проверка заполнения и правильного выбора реквизита документов          
Constantus Подменю пользователя
сообщение 05.07.18, 9:57
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Поставлена задача, чтобы сделать реквизит "Подразделение" обязательным для заполнения + на одно условие.

Понимаю, что нужно лезть во все документы и менять код, но подумал, может есть возможность проверки на подписки на событие... Но там не нашел событие "ПриИзменении(Подразделение)"

Можете что-нить посоветовать? Вот код для проверки при выборе "правильного" подразделения (не должен быть главным подразделением) + Еще как-то включить проверку на пустоту...

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

КонецПроцедуры


Petre Подменю пользователя
сообщение 05.07.18, 10:15
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Constantus @ Today, 9:57 * ,
Не существует подписок на события формы и ее элементов.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

andreydv87 Подменю пользователя
сообщение 05.07.18, 10:44
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 108
Спасибо сказали: 24 раз
Рейтинг: 22.3

Petre @ Сегодня, 11:15 * ,
Делайте проверку при записи.

Constantus Подменю пользователя
сообщение 05.07.18, 10:47
Сообщение #4

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

andreydv87 @ Сегодня, 13:44 * ,

Ага... так и сделал... Знал бы раньше, жил бы 44000000.gif

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


Constantus Подменю пользователя
сообщение 05.07.18, 12:53
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

А как в таком случае сделать проверку по заполнению табличной части документа?

Нужно проверить РКО на статьи движения денежных средств, которые заполнены в табличной части документа. В данном случае у статей ДДС имеется реквизит "Отключена" и при проверке должно выйти сообщение, что типа низяяя...

Процедура ПроверкаСтатьиДДСПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    // Вставить содержимое обработчика.
    
    Если Источник.РасшифровкаПлатежа.СтатьяДвиженияДенежныхСредств.Отключена Тогда
        Сообщить("Данное статья снята с учета и не применяется." + Символы.ПС + "Необходимо выбрать активную статью.");
        Отказ = Истина;
    КонецЕсли;    
    
КонецПроцедуры



А... разобрался...

Vidocq05 Подменю пользователя
сообщение 05.07.18, 14:07
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Цитата(Constantus @ 05.07.18, 11:47) *
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
               |    Подразделения.Ссылка КАК Ссылка1,
               |    Подразделения.Наименование,
               |    Подразделения.ГруппаВыбора
               |ИЗ
               |    Справочник.Подразделения КАК Подразделения
               |ГДЕ
               |    Подразделения.ГруппаВыбора = ИСТИНА
               |    И Подразделения.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Источник.Подразделение);
Результат = Запрос.Выполнить();
Если  НЕ Результат.Пустой() Тогда
    Сообщить("Данное подразделение является группой Подразделений. Использовать нельзя. Необходимо выбрать подразделение внутри этой группы.");
    Источник.Подразделение = Справочники.Подразделения.ПустаяСсылка();
    Отказ = Истина;
Иначе
     // делайте что угодно
КонецЕсли;


А какой смысл в этом куске кода? Просто любопытно.

Constantus Подменю пользователя
сообщение 05.07.18, 15:02
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Vidocq05 @ Сегодня, 17:07 * ,

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

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

Vidocq05 Подменю пользователя
сообщение 06.07.18, 11:43
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Constantus @ Вчера, 16:02 * ,
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
               |    Подразделения.Ссылка КАК Ссылка1,
               |    Подразделения.Наименование,
               |    Подразделения.ГруппаВыбора
               |ИЗ
               |    Справочник.Подразделения КАК Подразделения
               |ГДЕ
               |    Подразделения.ГруппаВыбора = ИСТИНА
               |    И Подразделения.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Источник.Подразделение);
Результат = Запрос.Выполнить();
Если  НЕ Результат.Пустой() Тогда
    Сообщить("Данное подразделение является группой Подразделений. Использовать нельзя. Необходимо выбрать подразделение внутри этой группы.");
    Источник.Подразделение = Справочники.Подразделения.ПустаяСсылка();
    Отказ = Истина;
Иначе
     // делайте что угодно
КонецЕсли;


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

По сути одно и тоже, но вроде как понятнее и читабельнее.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 19:21
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!