Базовый курс. Решение ДЗ №7
Представляем решение 7-го ДЗ.
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте
— залогиньтесь.
— залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись —
напишите нам на e-mail поддержки.
Посмотрел решение, подправил свою конфигурацию.
При решении пытался использовать столкнулся с сортировкой по МоментуВремени документа: возвращался действительно почему-то первый документ, вместо последнего. Решение ДЗ прояснило: это странность платформы.
В решении не понравилось “ленивое” использование функции “СинхронизацияПользователей” для получения текущего пользователя. При каждой печати будет дополнительно произведена лишняя синхронизация. По-моему стоило создать отдельную функцию “ПолучитьТекущегоПользователя” и использовать именно ее.
Да, думаю Ваше предложение является рациональным.
ДЗ 7 выполнено
А можно немного развернуть детали решения?
Документ посупления и авансовый отчет были объеденены в один по средством перечисления.ВидПоступления со значениями соответственно (ПриходнаяНакладная и Авансовый отчет) – считаю, что смысловая нагрузка для пользователя ослабевает, однако это позволяет сократить виды документов отражающих, по сути одно и то же действие (различия только в шапке документа). Правда вызвало некоторое затруднение с созданием менеджера печати форм (однако и эту трудность победил). Момент качества товара, правда, реализована по-средством опять-таки Перечисления. Момент градуировки при этом больше контролируется разработчиком и поставщиком задачи, хотя можно было бы и обойтись справочником с предопределенными элементами, что даст в последствии больше возможности варировать определениями видов Брака Товара.
Далее был создан документы “КонтактыСКонтрагентами”, где в шапке указывается вид контактной информации, его значение, Контактное лицо из справочника “КонтактныеЛицаКонтрагента” (извините, что позаимствовал у Вашего решения такой ход решения с промежуточными справочниками – надежно выглядит :)) и поле, “ТЕМА”.
Момент с реализацией, еще – поставил в зависимость значение поля скидка в ТабличнойЧасти документа – заполненность поля ВидБрака от значения справочника СкидкиТовара (для проставления значения по умолчанию) с соответствующим пересчетом ТабЧасти Суммы.
Ввод на основании по последнему виду документов организовал по-средством выборки с помощью запроса последнего документа и копированием ТабЧастей в новые документы.
Плохо смотрел постановку задачи – переделал “КачествоТовара” из Перечисления в Справочник. (
Всё, разобрался :)
А зачем в модуле менеджера документа РеализацияТоваров для получения текущего пользователя обращаться к функции ОбщиеФункцииСервер.СинхронизацияПользователей()? Не проще ли было бы напрямую воспользоваться методом ПользователиИнформационнойБазы.ТекущийПользователь()?
1. ПолучитьЕдиницуИзмерения
Зачем явно возвращать пустую ссылку? Ведь можно вернуть пустую строку, которую система приведет к пустой ссылке самостоятельно. Это не принципиально, но Возврат “” – нагляднее.
При возврате не проверяется на Коэффициент = 1, но логично предположить, что единица подставляемая в документ по-умолчанию должна быть равна базовой.
2. ЮрФизЛицо
Имеет ли смысл создавать перечисление, состоящее всего из двух вариантов? Почему бы не использовать реквизит типа Булево?
1. На мой взгляд явная пустая ссылка нагляднее.
2. Перечисление имеет смысл создавать, если количество более 2х.
Тем не менее даже для двух значений иногда имеет смысл применять перечисление.
Наиболее удачный пример – Пол (мужской или женский). В этом примере использование типа Булево возможно, но код и формы элементу будут не наглядными.
Что касается ЮрФизЛица, то думаю не принципиально какой тип использовать Булево или ПеречислениеСсылка.
Для ДАЛЬНЕЙШЕЙ работы лучше брать Вашу конфигурацию или свою? В последнем случае, если Контрагент и Подотчетное лицо не разнесены по разным документам поступления, – произвести это или пойдет вариант одного поступления?
Лучше использовать свою конфигурацию.
Вашу реализацию подотчетного лица можно оставить без изменения.
В конструкторе запросов для документа появляется поле МоментВремени, в конфигураторе такого атрибута у документа нет. Откуда оно берется?
У меня на релизе платформы 1С:Предприятие 8.2 (8.2.13.219) упорялочивание в запросе по полю МоментВремени работает правильно, а у вас какой релиз в видео?
>Откуда оно берется?
Это виртуальное поле, которое образуется от даты и ссылки.
В решении использовался релиз 8.2.12.