Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 15:04

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

Автор Олька1992, 17 фев 2016, 14:48

0 Пользователей и 1 гость просматривают эту тему.

Олька1992

в справочник ФизЛица добавила реквизит булево пенсионер, теперь нужно в документе увольнение чтобы при записи появлялось сообщение "это физ лицо является пенсионером", как это воплотить, подскажите плиз)
в справочнике ФизЛица, если вытаскивать сотрудника запросом, является ссылка, а сам сотрудник является типом строка!

cska-fanat-kz

чтобы кадровик всплакнул когда увольнял пенсионера? :D
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Тамерлан Тарханов

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


&НаСервереБезКонтекста
Функция ПередЗаписьюНаСервере(Сотрудник)
   Спр = Справочники.ФизическиеЛица.НайтиПоНаименованию(Сотрудник);
   Если Спр.Персионер = Истина тогда
   Сообщение = 1;
Иначе Сообщение = 0;
   КонецЕсли;
   Возврат Сообщение;
КонецФункции

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

vitasw

Цитата: Тамерлан Тарханов от 25 фев 2016, 10:22В модуль Формы добавь:
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
   ТекСтрока = Элементы.Сотрудник.ТекущиеДанные;
   Сотрудник = ТекСтрока.Сотрудник;
   Если ПередЗаписьюНаСервере(Сотрудник) = 1 тогда
   Результат = Вопрос("Это физ лицо является пенсионером, уволить?",РежимДиалогаВопрос.ДаНет);
   Если Результат = КодВозвратаДиалога.Нет тогда
   Отказ = Истина;
   КонецЕсли;
   КонецЕсли;
КонецПроцедуры


&НаСервереБезКонтекста
Функция ПередЗаписьюНаСервере(Сотрудник)
   Спр = Справочники.ФизическиеЛица.НайтиПоНаименованию(Сотрудник);
   Если Спр.Персионер = Истина тогда
   Сообщение = 1;
Иначе Сообщение = 0;
   КонецЕсли;
   Возврат Сообщение;
КонецФункции

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

Н-даааааа, носеветовали тут. От таких советчиков потом всплакнуть хочется.... Тут столько криворукости, что даже комментировать не хочется.

Rasty

а не проще приизминении строки тч делать? да и писать меньше
Если Строка.Сотрудник.ФизическоеЛицо.Пенсионер Тогда
    Сообщить("Выбранные сотрудник:" + Строка.Сотрудник. +" - Пенсионер!");
     
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Тамерлан Тарханов

Точно, при изменении проще

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск