Создаем справочники “Контрагенты” и “КонтактныеЛица”, при чем в справочнике “Контрагенты” создаем ТЧ с двумя колонками: одна ссылка на справочник “КонтактныеЛица”, другая Должность тип “Строка”.
Создаем справочники “Номенклатура” и “Классификатор единиц измерения”, перечисление “ВидНоменклатуры”. В справочнике “Номенклатура” для реквизитов “ВидНоменклатуры” и “БазоваяЕдиницаИзмерения” ставим в свойстве Проверка заполнения: ВыдаватьОшибку. Создаем подчиненный справочнику “Номенклатура” справочник “ЕдиницыИзмерения”.
В модуле объекта справочника “Номенклатура” пишем:
<code>
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если ЭтоГруппа=Ложь Тогда
//указываем, что мы сами обрбатываем реквизит БазоваяЕдиницаИзмерения
ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти(“БазоваяЕдиницаИзмерения”));
Если ВидНоменклатуры<>Перечисления.ВидНоменклатуры.Услуга Тогда
ПроверяемыеРеквизиты.Добавить(“БазоваяЕдиницаИзмерения”);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ЭтотОбъект, СтандартнаяОбработка)
Если ЭтотОбъект<>Неопределено Тогда
ВидНоменклатуры=ЭтотОбъект.Родитель.ВидНоменклатуры;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ПустаяСтрока(БазоваяЕдиницаИзмерения)=Ложь Тогда
Если ЭтоНовый()=Истина Тогда
НовыйЭлемент=Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НовыйЭлемент.Владелец= ЭтотОбъект.ПолучитьСсылкуНового();
НовыйЭлемент.ЕдиницаИзмерения=БазоваяЕдиницаИзмерения;
НовыйЭлемент.КоэффициентПересчетаТекущейЕдиницыВБазовую=1;
НовыйЭлемент.Записать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
</code>
&НаСервере
Процедура ПроверкаКонтрагентовНаСервере()
Выбор=Справочники.Контрагенты.Выбрать();
Сообщение = Новый СообщениеПользователю;
Пока Выбор.Следующий() Цикл
Если Выбор.ЭтоГруппа=Ложь и Выбор.КонтактныеЛица.Количество()=0 Тогда
Сообщение.Текст = Выбор.Наименование;
Сообщение.Сообщить();
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ПроверкаКонтрагентовНаСервере()
</code>
Все материалы этого сайта являются составной частью Базового / Продвинутого курсов по программированию - и являются объектами авторского и имущественного права.
Любое их распространение без письменного согласования с авторами запрещено.
Создаем справочники “Контрагенты” и “КонтактныеЛица”, при чем в справочнике “Контрагенты” создаем ТЧ с двумя колонками: одна ссылка на справочник “КонтактныеЛица”, другая Должность тип “Строка”.
Создаем справочники “Номенклатура” и “Классификатор единиц измерения”, перечисление “ВидНоменклатуры”. В справочнике “Номенклатура” для реквизитов “ВидНоменклатуры” и “БазоваяЕдиницаИзмерения” ставим в свойстве Проверка заполнения: ВыдаватьОшибку. Создаем подчиненный справочнику “Номенклатура” справочник “ЕдиницыИзмерения”.
В модуле объекта справочника “Номенклатура” пишем:
<code>
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если ЭтоГруппа=Ложь Тогда
//указываем, что мы сами обрбатываем реквизит БазоваяЕдиницаИзмерения
ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти(“БазоваяЕдиницаИзмерения”));
Если ВидНоменклатуры<>Перечисления.ВидНоменклатуры.Услуга Тогда
ПроверяемыеРеквизиты.Добавить(“БазоваяЕдиницаИзмерения”);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ЭтотОбъект, СтандартнаяОбработка)
Если ЭтотОбъект<>Неопределено Тогда
ВидНоменклатуры=ЭтотОбъект.Родитель.ВидНоменклатуры;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ПустаяСтрока(БазоваяЕдиницаИзмерения)=Ложь Тогда
Если ЭтоНовый()=Истина Тогда
НовыйЭлемент=Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НовыйЭлемент.Владелец= ЭтотОбъект.ПолучитьСсылкуНового();
НовыйЭлемент.ЕдиницаИзмерения=БазоваяЕдиницаИзмерения;
НовыйЭлемент.КоэффициентПересчетаТекущейЕдиницыВБазовую=1;
НовыйЭлемент.Записать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
</code>
Обработка “Проверка контрагентов”
<code>
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПроверкаКонтрагентовНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПроверкаКонтрагентовНаСервере()
Выбор=Справочники.Контрагенты.Выбрать();
Сообщение = Новый СообщениеПользователю;
Пока Выбор.Следующий() Цикл
Если Выбор.ЭтоГруппа=Ложь и Выбор.КонтактныеЛица.Количество()=0 Тогда
Сообщение.Текст = Выбор.Наименование;
Сообщение.Сообщить();
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ПроверкаКонтрагентовНаСервере()
</code>
sorokl, ваш отчет принят.