Решение ДЗ №12 базового курса

Решение заключительного задания по 3-му блоку.

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

комментариев 28 на “Решение ДЗ №12 базового курса”

  1. >пожалуй, это самое объемное задание на текущий день.
    Не соглашусь, по сравнению с 9 – семечки..

    P.S.: Было бы интересно увидеть реализацию Авизо с использованием ТЧ – поесмотреть преодоление заморочек с доступностью в ТЧ..

    • Интересный вопрос. Возьму на заметку.

      • Спасибо, было б действительно оч. интересно, познаваемо и полезно!..

  2. Константин Павленко 25.08.2010 в 17:40

    Есть ещё соображение по документу РеализацияТоваров. Проводим документ только по БУ. Если попытаться реализовать (не передать) то, чего у нас по БУ не проходило, то выдаётся непонятная для пользователя ошибка: “Запись не верна! Не заполнен счет кредита (Регистр бухгалтерии: Хозрасчетный; Номер строки: N)”. Это потому, что счет кредита теперь достаём из остатков, а если остатков нет? Я решил делать проверку на превышение остатков для всех операций и перенес её в начало цикла:

    Пока Выборка.Следующий() Цикл
    Если Выборка.КолДок>Выборка.КолОст Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = “Превышение остатка по “+Выборка.Номенклатура+” на “+(Выборка.КолДок-Выборка.КолОст);
    Сообщение.Сообщить();
    Отказ = Истина;
    КонецЕсли;
    Если Отказ Тогда
    Продолжить;
    КонецЕсли;

  3. Константин Павленко 25.08.2010 в 10:48

    Мелкая давняя ошибка – невозможно записать группу справочника Номенклатура. К группе пытается записать единицу измерения, которой нет. В процедуре ПриЗаписи() указываеи:
    Если Не Отказ И Не ЭтоГруппа Тогда

  4. Вопрос на засыпку – Для чего в данном курсе нуга 10 глава 3 блока?!..
    Ну очень “муторная” тема – особенно для новичков..
    Не даром в 19 уроке на 5 минуте, прозвучало “Поздравление” – для досшушевших до этого момента!.. ;))

    • Чтобы показать, что некоторые “простые” задачи имеют не самые простые решения.
      Это полезно, даже новичкам )
      А в продвинутом хватает не простых тем..

      • Что некоторые «простые» задачи имеют не самые простые решения – эт видно в дюбой типовой, 1С – умельцы по таким решениям!.. ;))

  5. В документе Авизо если выбрать счет с 2-мя видами субконто, то “Связь по типу” срабатывает некорректно. Поэтому лучше сделать это программно.
    Я сделал так:
    Если ЗначениеЗаполнено(Объект.Счет) Тогда
    Элементы[“Субконто”+Сч].ОграничениеТипа = Объект.Счет.ВидыСубконто[Сч – 1].ВидСубконто.ТипЗначения;
    КонецЕсли;

    • Да, печальное поведение. И в документе “Операция” та же беда.
      Очень похоже на ошибку платформы, которая тянется еще с 9-го релиза.
      Предложенный “костыль” будет работать.

      • Константин Павленко 25.08.2010 в 17:27

        Исследовал данную проблему. Соображения следующие:
        1. Если в управляемой форме не делать “видимо-невидимо” для Субконто1 и Субконто2, то связь по типу работает нормально. Можно выбрать Счет, записать и закрыть. Потом открыть – типы открытых субконто установлены. Видимо при установке видимости связь по типу не отрабатывает.
        2. В качестве Элемента связи по типу лучше указывать не 0, 1 а 1, 2. Подсмотрел в УПП, документ ОперацияБух. Для СубконтоДт1, СубконтоДт2 и СубконтоДт3 указаны соответственно 1, 2, 3. В 8.2 такой подход тоже работает – проверено.
        3. Если ограничение типа делать программно по методу коллеги Alex_grem, то надо помнить о границах индекса Объект.Счет.ВидыСубконто. Мой вариант:

        Процедура УстановитьВидимость()
        Если ЗначениеЗаполнено(Объект.Счет) Тогда
        Для Сч=1 По Объект.Счет.ВидыСубконто.Количество() Цикл
        Элементы[“Субконто”+Сч].Видимость = Истина;
        Элементы[“Субконто”+Сч].ОграничениеТипа = Объект.Счет.ВидыСубконто[Сч-1].ВидСубконто.ТипЗначения;
        КонецЦикла;
        Элементы.Количество.Видимость = Объект.Счет.Количественный;
        КонецЕсли;
        КонецПроцедуры

        Изначально видимость реквизитов Субконто1, Субконто2 и Количество сброшена в форме.

        • Интересное поведение, возьму на заметку.
          Кстати, как отработает текущий алгоритм, если сначала выбрать счет с 2-мя субконто, а потом без субконто?

          • Константин Павленко 26.08.2010 в 12:09

            Да, проблема такая есть. Но можно обойти – в начале процедуры УстановитьВидимость() добавить две строки:
            Элементы.Субконто1.Видимость = Ложь;
            Элементы.Субконто2.Видимость = Ложь;

  6. местами у Вас в коде написано ПодразделениеОТРАвитель. Звучит зловеще! :)

  7. как-то идея делать один запрос учитывающий несколько документов в общем модуле мне не оч нравится. если мне нужно поправить один документ в типовой в общем модуле. нужно отследить, а как другие документы. а была бы в модуле этого документа процедура-там поправил и всё. особенно если многоэтажные запросы которые написаны через +условие+
    так и получилось с авансовым. и так есть в типовых.

    • Смотря какие документы.
      Изначально функциональность была очень схожа, но дальше сильно разъехалась..

      • progr-2008 20.08.2010 в 19:54

        А мне такие примеры нравятся с той точки зрения, что в УПП есть аналогичные ситуации.
        Здесь подробно объясняете – там проще разбираться.

        • Да уж, три дня как-то убил, чтобы найти где в УСО проводки формируются по какому не помню уже документу.

          • правда что ли три дня? за час можно отловить думаю..по f11

  8. Евгений, вы так легко поменяли местами субконто на счете 002. Хотелось бы узнать, насколько это правомерно. Вы это сделали, чтобы упростить себе задачу или так делать можно? И если на экзамене на специалиста такое сделать, верным ли будет решение задачи?

    • Да, это я сделал, чтобы упростить алгоритмы. Поскольку никаких отчетов по ответ. хранению в задании не требуется, я могу спокойно менять порядок субконто.
      Ведь по сути порядок влияет лишь на скорость доступа к данным: к первым субконто будет идти обращение быстрее. Т.е. в моем решении остаток по 002 для товаров будет выбираться быстро.
      А все товары по контрагенту чуть медленнее.
      Что касается экзамена. Если речь идет о специалисте по платформе, то считаю такое изменение порядка субконто не повлияло бы оценку (если бы решаемая задача была аналогичной).

  9. ссылка на 11 часть не работает, в ней вместо 11 стоит 1/1