Базовый курс. Занятие №6

Приступайте к шестому занятию базового курса.

ps. На этой странице не нужно отчитываться о выполнении ДЗ.

комментария 2 на “Базовый курс. Занятие №6”

  1. Создаем справочники “Контрагенты” и “КонтактныеЛица”, при чем в справочнике “Контрагенты” создаем ТЧ с двумя колонками: одна ссылка на справочник “КонтактныеЛица”, другая Должность тип “Строка”.

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

    Процедура ОбработкаЗаполнения(ЭтотОбъект, СтандартнаяОбработка)
        Если ЭтотОбъект<>Неопределено Тогда
            ВидНоменклатуры=ЭтотОбъект.Родитель.ВидНоменклатуры;
        КонецЕсли;
    КонецПроцедуры

    Процедура ПередЗаписью(Отказ)
        Если ПустаяСтрока(БазоваяЕдиницаИзмерения)=Ложь Тогда
            Если ЭтоНовый()=Истина Тогда
                НовыйЭлемент=Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
                НовыйЭлемент.Владелец= ЭтотОбъект.ПолучитьСсылкуНового();
                НовыйЭлемент.ЕдиницаИзмерения=БазоваяЕдиницаИзмерения;
                НовыйЭлемент.КоэффициентПересчетаТекущейЕдиницыВБазовую=1;
                НовыйЭлемент.Записать();
            КонецЕсли;
        КонецЕсли;
    КонецПроцедуры
    </code>

    Обработка “Проверка контрагентов”
    <code>
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
        ПроверкаКонтрагентовНаСервере();
    КонецПроцедуры

    &НаСервере
    Процедура ПроверкаКонтрагентовНаСервере()
         Выбор=Справочники.Контрагенты.Выбрать();
        Сообщение = Новый СообщениеПользователю;
        Пока Выбор.Следующий() Цикл
            Если Выбор.ЭтоГруппа=Ложь и Выбор.КонтактныеЛица.Количество()=0 Тогда
                Сообщение.Текст = Выбор.Наименование;
                Сообщение.Сообщить();
            КонецЕсли;
        КонецЦикла;
    КонецПроцедуры // ПроверкаКонтрагентовНаСервере()
    </code>