Базовый курс. Решение ДЗ №6

Представляем решение шестого домашнего задания.

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.

комментариев 16 на “Базовый курс. Решение ДЗ №6”

  1. comradeegor 06.12.2010 в 22:24

    Решал не через подчинённые справочники, а через ТЧ. Понимаю, что ссылку на элемент ТЧ дать нельзя, но в данном упражнении это не требуется, а в большинстве случаев это не нужно.
    Вариант с подчинёнными справочниками лично я бы использовал только в крайних случаях.
    Во-первых это отдаёт махровой 7.7, некрасиво как-то. Есть же замечательный механизм – ТЧ справочников (от отсутствия которого многие страдали в 7.7), используя же механизм подчинённых справочников мы на ровном месте плодим объекты метаданных: КонтактныеЛица – КонтактныеЛицаКонтрагентов,  ЕдиницыИзмерения – ЕдиницыИзмеренияНоменклатуры и т.д.
     
    Так же немного удивило, то как преподаватель прописал условие “ИМЕЮЩИЕ”. Опять вручную!
    Я конечно понимаю, что это в данном упражнении не сложно, но можно же всё сделать с помощью конструктора. К тому же кто-то из слушателей так и не понял, что это за финт ушами и откуда он взялся.
    Элементарно в конструкторе запросов на вкладке “Условия” ставится галочка “Произвольное” и далее из агрегатных функций перетягивается мышкой КОЛИЧЕСТВО(РАЗЛИЧНЫЕ <Выражение>), а в <Выражение> перетягивается КонтрагентыКонтакты.КонтактноеЛицо
    Нажимаем Ок и текст готов.

    • > но в данном упражнении это не требуется, а в большинстве случаев это не нужно
      Опираться на статистику при выборе сущности не совсем правильная стратегия.
      Есть четкие правила когда нужно использовать подчиненный справочник, а когда достаточно ТЧ.

      >используя же механизм подчинённых справочников мы на ровном месте плодим объекты метаданных
      Пожалуй, в этом нет ничего страшного. Более того, все сущности “на поверхности”, а не внутри.
      В любом случае количество таблиц будет одинаковым.
      Когда первый раз открываешь УПП и видишь 200 справочников, 300 документов и 500 регистров (цифры условные) становиться немного не по себе.
      А потом понимаешь, что ничего в этом страшного нет :)

      >Я конечно понимаю, что это в данном упражнении не сложно, но можно же всё сделать с помощью конструктора.
      Спасибо за замечание, в следующий раз продемонстрирую.

  2. tatianalma 27.11.2010 в 23:21

    Уже не первый раз понимаю, что учитываю в своем решении не все моменты. И с часовыми поясами даже мысли не возникло,  и тут с занесением в справочник базовой единицы (кстати, ее бы еще надо закрыть от изменения в старых элементах).
    Но вот с запросами – совсем темный лес. Изначально сделала без них, там все элементарно, но с ними без Вашей помощи так и не получилось, хотя мучилась долго. Про ИМЕЮЩИЕ в уроках не было, а конструктор тоже никак не хотел со мной договориться.
    Если можно, расскажите побольше про типовые запросы, с примерами, и может с задачками. 

    • Задачу можно решить и без предложения “Имеющие”, см. в комментариях других участников.
      Запросы будут разбираться и далее во всех блоках базового курса.
      Я бы рекомендовал вам порешать задачи из первого блока. Те что я разбираю в главе Запросы.
      Решаете сами, потом сравниваете с решением преподавателя.

      • tatianalma 28.11.2010 в 16:51

        Большое спабибо, Евгений! К сожалению, не хватает времени читать решения всех участников, видела там еще одно красивое решение. Просто выбрать всех а потом уж там искать нули у меня получалось, но ведь Вы бы не давали задачу, если б ее нельзя бы было решить красиво. :) 

    • comradeegor 06.12.2010 в 23:45

      Элементарно в конструкторе запросов на вкладке «Условия» ставится галочка «Произвольное» и далее из агрегатных функций перетягивается мышкой КОЛИЧЕСТВО(РАЗЛИЧНЫЕ <Выражение>), а в <Выражение> перетягивается КонтрагентыКонтакты.КонтактноеЛицо
      Нажимаем Ок и текст готов.

  3. В модуле объекта есть Процедура ОбработкаПроверкиЗаполнения, в модуле формы Процедура ОбработкаПроверкиЗаполненияНаСервере. В обеих можно выполнять всяческие проверки. В чем разница (кроме того, что в модуле формы надо применять Объект.)? В каких случаях правильнее применять ту или другую процедуру?

    • Разница есть и достаточно существенная.
      Можно выделить следующие правила.
      1. В событии модуля объекта ОбработкаПроверкиЗаполнения() можно работать с реквизитами объекта. Например, для документа ПоступлениеТоваров реквизиты Контрагент и Договор.
      2. В событии модуля формы ОбработкаПроверкиЗаполненияНаСервере() нужно работать с реквизитами формы. Например, создать в форме служебный реквизит Статус. А вот с Контрагентом и Договором не получится работать.

      И дело здесь в параметре ПроверяемыеРеквизиты.

      Проведите эксперимент: посмотрите что содержится в этом параметре в разных событиях (установить проверку заполнения для каких-либо реквизитов).

  4. Посмотрел решение – есть чего почерпнуть (особенно с учётом того, что под 8.2 приёмы оптимизации имеют свою специфику).  Теперь буду смотреть все примеры решения ДЗ.
    По обратной связи:
    1.Интересно всё! По 1с8 практики практически нет, может и лучше что сразу 8.2 т.к. с её выходом остальное устарело! Наверняка по окончанию курса есть смысл пройти всё по 2-му кругу блоки для закрепления знаний и акценте на тех вещах, которые с первого прохода не заметил.
    2.Наиболее сложные моменты которые самостоятельно одолеть займёт кучу времени это интерфейс и контекст, особенно контекст! И то и другое вообще нечто, но интересно. Курсы здорово систематизируют то что есть в голове и прилично добавляют знаний.  Опять-же очень помог урок по пользованию синтаксис-помошником!
    3.Как-то не раскрыта тема ОлеАвтомэйшена (при том что про ком и хоть крайне вскользь но упоминают + спецзанятие мастер-группы по нему есть), в 1С7 пользую очень часто… очень удобно для импорта/экспорта данных между конфигурациями, ещё в синтаксис помошнике нашёл очень интересную вещь “подписка на события”. Эти 2 темы в данный курс не входят?

    • Подписки на события входят в продвинутый курс.
      Что касается Automation, то какой бы пример хотелось рассмотреть? Общие моменты мы давали в тематической сессии МГ, мне казалось, что дальнейшие действия должны быть понятны..

      • Времени не хватает… не все МГ изучил, обязательно найду и если будут вопросы уточню, т.к. у нас это имеет большое прикладное значение.

  5. На мой взгляд не использовать наименование в справочниках КонтактныеЛицаКонтрагентов и ЕдиницыИзмерения не правильно, поскольку при использовании реквизитов этого типа в других объектах будет выводиться код, а это не правильно, логичнее было-бы заполнять реквизит Наименование при записи элемента справочника значением ФИО контактного лица или названием соответствующей единицы измерения.

  6. Евгений Шилов 24.11.2010 в 18:44

    Я правильно понимаю, что создание подчиненного справочника для хранения соответствия контактных лиц предпочтительнее регистра сведений? Только тем, что можно получить вкладку перейти в форме?
    В процедуре ПриЗаписи в модуле объекта справочника “Номенклатуры” мы создаем новую единицу измерения, а что если транзакция прервется после записи новой единицы измерения в базу? Новая единица будет удалена?

    • 1. Нет. Перейти это совсем не самое главное, это скорее бонус :)
      Самое главное – наличие ссылки на КЛ контрагента. А это значит, есть возможность сослаться на него, например, в документах.
      2. Да, единица будет удалена.