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

Хранилище

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

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

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

Почти ветеран
******
Группа: Пользователи
Сообщений: 674
Спасибо сказали: 3 раз
Рейтинг: 3

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

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

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

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

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

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


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

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

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


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

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

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 2 раз
Рейтинг: 2

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

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

Почти ветеран
******
Группа: Пользователи
Сообщений: 674
Спасибо сказали: 3 раз
Рейтинг: 3

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

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

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


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

Почти ветеран
******
Группа: Пользователи
Сообщений: 674
Спасибо сказали: 3 раз
Рейтинг: 3

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

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

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



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

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

Завсегдатай
****
Группа: Пользователи
Сообщений: 141
Из: Сумы
Спасибо сказали: 23 раз
Рейтинг: 23

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


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

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

Почти ветеран
******
Группа: Пользователи
Сообщений: 674
Спасибо сказали: 3 раз
Рейтинг: 3

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

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

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

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

Завсегдатай
****
Группа: Пользователи
Сообщений: 141
Из: Сумы
Спасибо сказали: 23 раз
Рейтинг: 23

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


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

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

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


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

 

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

Курсы валют: доллар США к гривне Курсы валют: евро к гривне Курсы валют: российский рубль к гривне