Базовый курс. Финальное задание 29-го потока

Объявляем начало финала 29-го потока базового курса по программированию.

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

Если не активировали токен — посмотрите видео-инструкцию (видео N5)

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

комментариев 7 на “Базовый курс. Финальное задание 29-го потока”

  1. Шаг1.
    Два года назад пришлось переехать в другую местность и поменять профессию. Предыдущее очное обучение оставило большие пробелы в знаниях, поскольку преподаватели стремились прочитать материал по перегруженному плану, не уделяя достаточного внимания изучению тонкостей неочевидных моментов. Не было возможности еще раз вернуться к пройденному материалу, еще раз все прослушать, в отличие от видео уроков. Встреченные мной в сети интернет бесплатные уроки Е.Гилева понравились качеством изложения и манерой подачи материала. Просмотрев большое количество бесплатных курсов разных авторов, я поняла, что уроки Е.Гилева для меня лучший вариант. Купила сразу комплект курсов и не пожалела об этом.
    Сразу после прохождения «Быстрого старта» приступила к изучению «Базового курса». Даже несмотря на несколько вынужденных перерывов в изучении курса, мне удалось завершить «Базовый курс», т.к. всегда была возможность вернуться к ранее пройденному материалу и освежить свои знания.
    Курс очень понравился доступностью и системностью изложения материала.
    Григорьева Юлия Александровна, г. Нижний Новгород.

    Шаг2.
    1) При открытии уже проведенного документа «Поступление», в реквизите «ИсточникПоступления» принудительно выставляется значение «Рождение на территории зоопарка».
    Нужно в модуле формы документа поступления добавить проверку на «новый документ».

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
        Если Объект.Ссылка.Пустая() Тогда
            Объект.ИсточникПоступления = Константы.ОсновнойИсточник.Получить();
        КонецЕсли;
       
    КонецПроцедуры

    2) Если вводить новый документ «Поступление», то дата выставляется не текущая. Это неудобно.
    Нужно в стандартном реквизите «Дата» очистить «Значение заполнения» «01.01.1980 0:00:00» .
    3) Если вводить новый документ «Выбытие», то дата выставляется тоже неправильно.
    Нужно в модуле объекта в процедуре «ОбработкаЗаполнения» убрать строчки

    ДанныеЗаполнения = Новый Структура;
            ДанныеЗаполнения.Вставить("Дата", '19800101');

    4) При открытии документа «Выбытие» в тонком клиенте выдается ошибка.
    Нужно перенести код в серверную процедуру «ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)».
    5) Для удобства включила видимость регистров накопления на рабочем столе и в документах.
    6) В документе «Инвентаризация» невозможно проставить нулевое фактическое количество животных.
    Нужно в табличной части «Животные» этого документа, в свойствах реквизита «КоличествоФакт» проверку заполнения поставить в значение «Не проверять».
    7) В документе «Инвентаризация» при нажатии кнопки «Заполнить» не выставляется признак модифицированности.
    Нужно в форме документа «Инвентаризация» в конце клиентской процедуры «Заполнить» добавить Модифицированность=Истина;
    8) При создании на основании документа «Инвентаризация» других документов удобнее было бы ставить дату самого документа «Инвентаризация».
    Нужно передавать параметр «Дата» (ЗаполнитьНаСервере(Объект.Дата);), в запросе в параметрах виртуальной таблицы поставить период – &Дата. В самой процедуре «ЗаполнитьНаСервере» добавить

    Запрос.УстановитьПараметр("Дата",Дата);

    9) Вид регистра накопления «ВыбытияЖивотных» нужно изменить с «Остатки» на «Обороты». После чего перестает корректно работать отчет «АнализВыбытийЖивотных». Пришлось заново переделать отчет при помощи СКД.
    10) В документе «Выбытие» не происходит контроля остатков.
    Не учитывается сам документ. Нужно строчку кода

     Запрос.УстановитьПараметр("МоментВремени", МоментВремени());

    заменить на

     Запрос.УстановитьПараметр("МоментВремени", Новый Граница(МоментВремени(), ВидГраницы.Включая));

    11) В документе «Выбытие» при нехватке животного неправильно позиционируется курсор.
    Нужно отнять единичку от номера строки.

    Сообщение.Поле = "Животные["+(ВыборкаДетальныеЗаписи.НомерСтроки-1)+"].Животное";

    12) В отчете «РазмещениеЖивотных» в параметрах в составе даты поставить просто дату, в выражении для периода прописать

    ДобавитьКДате(КонецПериода(&Период, "День"), "Секунда", 1

    13) В документе «ПеремещениеЖивотных» для правильного контроля остатков в запрос надо добавить :

                   |ГДЕ
        |   РазмещениеЖивотныхОстатки.КоличествоОстаток < 0";

    Шаг3. Для только что поступивших сотрудников отдела внедрения проведен мини-семинар на тему «Типовые программные продукты. Платформа и Конфигурация. Резервные копии. Обновления.»

    1

    • Dobrenko Oleg 11.08.2014 в 05:55

      Юлия, благодарим вас за отзыв!
      Финальное задание принято, поздравляем с успешным окончанием базового курса!

  2. Шаг 1. “Обратная связь по курсу”
    Курс очень понравился насыщенностью полезного материала. Большой плюс это то, что его подача идет от простого к сложному. После изучения материалов курса можно самостоятельно и без особых проблем изучать работу типовых конфигураций, искать в них ошибки. Уже можно объяснять пользователю поведение системы в конкретных случаях. С помощью отладчика, анализируя програмный код добираемся до истины. Раньше я такого делать не мог.
    Изучив курс, начинаешь понимать как работает система изнутри. Анализируя типовые решения понимашь, что пободные приемы были и в базовом курсе. Находишь логику программного кода, то есть почему написано именно так, а не иначе. Легче стало разбираться с программным кодом.
    Материал такой, что от нулевых знаний переходишь к начинающему специалисту. К начинающему, но зато Специалисту!
    В процессе прохождения курса, еще когда небыло пройдено и половины материала, я уже пользовался полученными знаниями. В частности, смог настроить несколько отчетов пользователям, в виде удобном для пользователя. Сумел добавить в отчет вычисляемое поле на СКД. Разработал несколько отчетов с нуля. Уже некоторым пользователям смог объяснить поведение системы в конкретных случаях.
    После прохождения курса, появилась уверенность в том, что я смогу в этом разобраться, ну или по крайней мере шанс разобраться и решить поставленную задачу значительно возрос.
    Такой формат обучения очень удобен, но нужен постоянный самоконтроль, нужно не забывать заниматься. Задвигая обучение хотябы на день, есть все шансы отстать от потока и уже не догнать. И надо понимать, что завтра надо будет сделать вдвойне больше. Мне в обучении удобно было использовать конфигурацию просмотра курсов и тот план, который в ней находится.Очень удобно отслеживать и анализировать текущее положение дел. Работаю с конфигурациями БП 2.0 и 3.0; ЗУП 2.5

    Войченко Андрей Алексеевич, инженер-программист
    г. Пермь

    Шаг 2. “Практическое задание”
    1. В тонком клиенте создаем на основании Инвентаризации Выбытие животных и выходит ошибка: Переменная не определена(Константы).
    Возможное решение: Получение константы “ОсновноеНаправление” вынести в серверную процедуру. Получить значение там и передать на клиент.
    2. При проведении документа Перемещение животных выходит сообщение о недостаточночти животных.
    Возможное решение: Неправильно сконструирован запрос в обработке проведения документа Перемещение животных. Нужно добавить условие ГДЕ…
    3. При открытии документа в тонком клиенте Выбытие животных выходит сообщение об ошибке.
    Возможное решение: Получение константы “ОсновноеНаправление” вынести в серверную процедуру. Получить значение там и передать на клиент.
    4. Документ Выбытие животных может формировать отрицательные остатки по регистрам накопления.
    Возможное решение: Реализовать контроль остатков при Выбытии животных.
    5.Движения в регистр накопления “ВыбытияЖивотных” делаются только с видом движения приход.
    Возможное решение: Изменить тип этого регистра. Сделать его оборотным.
    6. При проведении документа “Выбытие животных” могут сформироваться отрицательные остатки по регистрам накопления.
    Возможное решение: Во вложенном запросе “ДанныеДокумента” не указано условие на документ.
    7. При проведении документа “Выбытие животных” контроль остатков при списании не учитывает сам проводимый документ.
    Возможное решение: В запросе процедуры обработки проведения для параметра запроса “МоментВремени” необходимо указать границу момента времени.
    8. При проведении Выбытия Животных если в документе ошибки, то сообщение об ошибке привязывается не к той строке.
    Возможное решение: В выводе сообщения пользователя из номера строки отнять единицу.
    9. Когда заполняем автоматически документ Инвентаризация, то признак модифицированности не устанавливается, хотя состав документа был изменен.
    Возможное решение: После отработки заполнения в модуле формы установить признак Модифицированности.
    10. При вводе документа поступления на основании инвентаризации, дата документа проставляется прошлого столетия.
    Возможное решение: В процедуре ОбработкаЗаполнения документа “ВыбытиеЖивотных” добавить реквизит “Дата” для заполнения в водимом документе.

    Шаг 3. “Статья на интересную тему”
    Механизм расчета заработной платы на платформе 1С:Предприятие 8.
    http://1c-pro.ru/threads/razbiraem-mexanizm-rascheta-zarabotnoj-platy-na-platforme-1s-predprijatie-8.50886/

    • Dobrenko Oleg 07.08.2014 в 08:28

      Андрей, благодарим за отзыв!
      Финальное задание принято. Поздравляем с успешным окончанием базового курса :)

  3. Шаг 1.

    С 1С работаю с 2009 года. Начинал еще с версии 8.1 (так сказать на ее закате). Так как 1С изучал сам, где по книжкам, где информацию брал из интернета, то все время сталкивался с тем что нет целостной картины. И иногда это очень мешало.

    Проходил дистанционное обучение в “Учебном центре №3” г.Москва, но так как иногда был завал с работой, то большинство курсов пройти до конца так и не удавалось. От коллег по работе услышал, что есть курсы, которые преподает Евгений

    Гилев. Но пройти именно курсы по программированию так и не получалось, из за нехватки времени. Курс понравился тем, что любая мелочь “разжевывается”, теория подкрепляется многими примерами. Особенно понравился формат обучения. В любой

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

    практике своей работаю с такими конфигурациями как Ут 11, Ут 10.3, Бухгалтерия 2.0 и 3.0, УПП 1.3. После прохождения курса широко использовать запросы, оптимизировал записи в регистры накопления, регистры сведений. В дальнейшем

    прохождение курса продвинутого и сдача на специалиста по платформе.

    Лазаренко Игорь Олегович. Программист 1С.
    г.Иркутск

    Шаг 2.

    1-я ошибка: При открытии сохраненных документов “Поступление” неправильно отображается реквизит “Источник поступления”.
    Так как в процедуре “При Создании на сервере” не проверяется это новый документ или нет при изменении значения реквизита на константу.
    2-я ошибка: В форме документа “Выбытие” Реквизит направление выбирается из константы в процедуре ПриОткрытии.
    Но эта процедура выполняется на клиенте, где недоступны константы. Нужно было сделать эту проверку в процедуре “ПриСозданииНаСервере”.
    3-я ошибка: (Косвенная) – Не создан и не сохраняется значения реквизита “Источник поступления” в Регистре накопления “Размещение животных”
    из документов “Поступление” и “Выбытие животных” при проведении. Поэтому при построении отчетов нужно будет обращаться к документам, а не к регистру накопления.
    4-я ошибка: В обработке проведения документа “Выбытие животных” в запросе во внутреннем соединении при выборе данных из документа
    не сделан отбор по ссылке, поэтому может быть выбран неверный НомерСтроки.
    5-я ошибка: (Косвенная) – В том же запросе при установке условий на виртуальную таблицу остатков во вложенном запросе не указано ключевое слово “Различные”,
    поэтому теоретически запрос будет выполняться дольше.
    6-я ошибка: Неправильно установлен параметр моментВремени в этом запросе. Сейчас не получаются записи, которые сделал сам документ. Для корректной работы запроса
    нужно проверять на оперативный и неоперативный режим и вместо момента времени использовать границу с видом включая.
    7-я ошибка: (Синтаксис) Неправильно формируется текст надписи при нехватке в документе выбытие. Лишний символ “в”.
    (Например: Недостаточно животного в Медведь).
    8-я ошибка: Неправильное указание поля в сообщении пользователю Нужно указывать индекс, а не номер строки табличной части (т.е. Номерстроки-1).
    А также логичнее было бы привязать сообщение к колонке количество, а не к колонке животное.
    9-я ошибка: (Косвенная) В обработке заполнения в документе Выбытие не понятно назначение создания структуры из данныхзаполнения при условии Иначе.
    10-я ошибка: Неправильно указан вид регистра накопления “Выбытия животных”. Животные только выбывают в этом регистре,
    поэтому логичнее было бы сделать вид регистра Обороты, а не Остатки.
    11-я ошибка: В запросе по нахождению нехватки в документе ПеремещениеЖивотных нет условия: количествоОстаток меньше нуля.
    Поэтому при положительном остатке всегда будет выдаваться сообщение об отрицательной нехватке и документ не будет проводиться.
    12-я ошибка: Не выставляется признак модифицированности документа Инвентаризация после нажатия на кнопку Заполнить.
    13-я ошибка: При заполнении документа Инвентаризация можно было бы брать данные на дату документа.
    А при создании на основании устанавливать дату создаваемого документа из текущего документа Инвентаризация.
    14-я ошибка: Невозможно сохранить нулевое количество животных по факту в документе Инвентаризация.
    Нужно изменить свойство “Проверка заполнения” реквизита количествоФакт табличной части Животные на “не проверять”.

    Шаг 3. Статья по программированию в 1С.

    http://infostart.ru/public/295116/

    • Dobrenko Oleg 06.08.2014 в 10:25

      Игорь, благодарим ваз за развернутый отзыв!
      Финальное задание принято. Поздравляем, вы первый финалист 29го потока базового курса по программированию!
      Желаем успехов в дальнейшем обучении :)

      • Спасибо и вам за вашу работу! Вы молодцы, так держать!