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

  1. Михаил 06.01.2013 в 12:00

    Переделал задание, вместо табличной части спр-ка “Номенклатура” – “ЕдиницыИзмерения” ввел подчиненный спр-к “ЕдиницыИзмерения”, соот-но изменил код модуля спр-ка “Номенклатура”:

    Процедура ПередЗаписью(Отказ)
        Если ВидНоменклатуры <> Перечисления.ВидНоменклатуры.Услуга  Тогда
            Если НЕ ЗначениеЗаполнено(БазоваяЕдиницаИзмерения) Тогда
                Сообщить("Заполните базовую единицу измерения");
                Отказ = Истина;
            КонецЕсли;
        КонецЕсли;
    КонецПроцедуры

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

    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
        Если Не ЭтоГруппа и Не ДанныеЗаполнения = Неопределено Тогда
            ВидНоменклатуры = ДанныеЗаполнения.Родитель.ВидНоменклатуры;
        КонецЕсли;
    КонецПроцедуры
  2. Михаил 03.01.2013 в 16:56

    1. Создал спр-к “Номенклатура” с табличной частью “ЕдиницыИзмерения”. Модуль объекта спр-ка “Номенклатура”:

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

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

    2. Создал спр-ки “Контрагенты и Контактные лица”. Модуль формы обработки по проверке не заполненных контактных лиц:

    &НаКлиенте
    Процедура Проверка(Команда)
       
        ПроверкаКонтрагентовСервер();
       
    КонецПроцедуры

    &НаСервере
    Процедура ПроверкаКонтрагентовСервер()

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

    КонецПроцедуры // ПроверкаКонтрагентовСервер()
  3. Юров Александр 01.01.2013 в 16:13

    Комментарии по первому блоку:

    1. Что нового я узнал в первом блоке или в чем поменялись взгляды после изучения материала?

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

    2. В какой теме были наибольшие затруднения, и что помогло их преодолеть?

    …с объектным подходом до сих пор не всё так прозрачно. В начале блока вообще несколько потерялся, однако сейчас, в конце блока, уже легче, опыт нарабатывается, особенно при выполнении домашних заданий -спасибо за них отдельное!!! Понимание приходит постепенно но неуклонно. И быть может будет несколько проще начинающим идти по этому пути если бы…

    3. Какую тему, имеющую отношение к текущему блоку, вы бы хотели подробнее раскрыть в мастер-группе?

    …создать некую общую схему взаимосвязи типов значений, методов, их образующих, свойств, процедур и т. д. (понятно, что подобные схемы отдельными частями в разных местах курса рисуются, но тем не менее). То, что наблюдаешь в синтакс-помощнике в виде списка, удобнее было бы видеть на схеме с однозначным пониманием места, к примеру, функций и методов глобального контекста и методов отдельных объектов конфигурациии. Вот как-то так.
    Еще раз спасибо!