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

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

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

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

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

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

  1. Шепелев Александр Николаевич, г. Курск, менеджер
    I
    Программированием в 1с до начала изучения курсов не занимался, поэтому здесь для меня практически все новое. По началу сложно было перестроиться в понимании с других объектных языков. Курсы для меня пришлись очень полезными, аналогов в выкладке, построении не встречал. Так держать!
    На очных курсах 1с не был, поэтому сравнить не могу. По графику обучения не успевал, т.к. не всегда была возможность уделить время изучению.
    Обязательно буду проходить и другие ваши курсы, такие как Продвинутый курс и Конвертация данных. Затем сертификация в 1С.
    Уже эти полученные знания успешно применяю на предприятии в доработке конфигурации.
    Спасибо!
    II
    документ ВЫБЫТИЕ
    1. В модуле формы нельзя обращаться к константе с клиентской процедуры.
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Объект.Ссылка.Пустая() Тогда
    Объект.ИсточникПоступления = Константы.ОсновноеНаправление.Получить();
    КонецЕсли;
    КонецПроцедуры

    Модуль объекта, документ Выбытие, ОбработкаПроведения

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

    3. В сообщению пользователю не было -1 в определении строки позиционирования сообщения.
    4. Позиционирование по полю исправлено на Количество (было Животное)
    Сообщение.Поле = “Животные[“+(ВыборкаДетальныеЗаписи.НомерСтроки-1)+”].Количество”;

    5. Некорректное сообщение (лишний предлог “В”)
    Сообщение.Текст = “Недостаточно животного в “+ВыборкаДетальныеЗаписи.Животное+” в “+ВыборкаДетальныеЗаписи.Клетка+” в количестве “+ВыборкаДетальныеЗаписи.Нехватка;

    6. В процедуре ОбработкаЗаполнения закомментировал этот код:
    //Иначе
    //
    // ДанныеЗаполнения = Новый Структура;
    // ДанныеЗаполнения.Вставить(“Дата”, ‘19800101’);

    Документ ПОСТУПЛЕНИЕ

    7. Удалено значение заполнения у стандартного реквизита Дата (01.01.1980)

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

    Отчет РАЗМЕЩЕНИЕ ЖИВОТНЫХ

    9. Период привел к концу дня
    ДобавитьКДате(КонецПериода(&Период, “День”),”Секунда”,1)

    Документ ПЕРЕМЕЩЕНИЕ

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

    ДОКУМЕНТ ИНВЕНТАРИЗАЦИЯ

    11. При заполнении ТЧ кнопкой Заполнить у формы не ставился признак модифицированности. Также добавлена проверка на пустой запрос:
    Если НЕ Результат.Пустой() Тогда
    Объект.Животные.Загрузить(Результат.Выгрузить());
    Модифицированность=истина;
    КонецЕсли;

    12. В поле количествоФакт невозможно записать число 0, поэтому отменим проверку заполненности и настроим представление нуля "Отсутствует"

    III
    http://infostart.ru/public/313122/

    • Dobrenko Oleg 17.11.2014 в 12:06

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

  2. Александр 14.11.2014 в 13:09

    Шаг 1.
    Гарасика Александр Иванович. Ведущий инженер-электронщик. Норильский филиал Всероссийского НИИ геологии.
    Из базового курса новым было все. В 2006 году пытался дистанционно учится 1С:8.0 в 1С – Учебный центр №3. Все закончилось на третьем ДЗ. Разница между их курсами и вашими ОГРОМНАЯ. Хотя, может лично мне, не повезло с преподавателем. На решение пройти обучение у Вас повлияло качество и глубина выкладки «свободно распространяемых Вами уроков». Хорошая, честная работа, заслуживающая уважения.
    По обучению.
    Темп для меня был великоват. Учась с «нуля» пришлось многим жертвовать эти три месяца. Жена смеется, что в доме появился новый член семьи – «Голос Гилева».
    Сейчас, перед продвинутым курсом, возьму небольшой таймаут. Не спеша снова пройду обозначенные у меня в рабочей тетради восклицательными знаками уроки, прорешаю опять ДЗ.
    Новой информации конечно много. По ходу обучения затруднения, естественно, вызвали запросы, регистры бухгалтерии и расчетов. Но это потому, что сфера новая, как и многие термины. По ходу обучения «подглядывал» в стандартные конфигурации 1С.
    Также затруднения вызвали управляемые формы и проведение документов (если не считать сводившую в самом начале с ума нестрогую типизацию). Долго не мог твердо уяснить порядок возникновения событий формы и событий при проведении, какие реквизиты и когда становятся доступными и что там и когда копируется с сервера на клиент и обратно. В видеоуроках эта информация, конечно есть, но очень разбросана. А нужна просто одна картинка, где будет все-все. Воспользовался книгой Профессиональная разработка в системе 1С:Предприятие 8 (двухтомник). Там это удобно изложено в форме нескольких наглядных рисунков. Распечатал, и повесил на видное место.
    Отдельно хочется отметить замечательную методику пошагового объяснения отладки алгоритмов на протяжении всего курса. Это дорогого стоит.

    Шаг 2.
    1. Документ Поступление. Стандартный реквизит Дата. При создании нового документа автоматом устанавливается дата 01.01.1980 0:00:00. Неудобно. Очистил. Система заполнит текущую дату автоматически.
    2. Документ Поступление. При открытии документа реквизит ИсточникПоступления автоматически принимает значение константы ОсновнойИсточник. Это удобно для нового документа, и недопустимо для уже созданного. Поправим:
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Объект.Ссылка.Пустая() Тогда
    Объект.ИсточникПоступления = Константы.ОсновнойИсточник.Получить();
    КонецЕсли;
    КонецПроцедуры

    3. Документ ВыбытиеЖивотных. В процедуре ОбработкаЗаполнения Модуля Объекта уберем строки:
    Иначе

    ДанныеЗаполнения = Новый Структура;
    ДанныеЗаполнения.Вставить(“Дата”, ‘19800101’);
    Текущая дата нового документа будет проставляться автоматически.

    4. При открытии документа ВыбытиеЖивотных в тонком клиенте выдается ошибка при запросе к константе. Перенесем код в серверную процедуру ПриСозданииНаСервере(Отказ, СтандартнаяОбработка).

    5. Для придания смысла регистру накопления ВыбытияЖивотных, изменим его тип с Остатки на Обороты.

    6. Доработаем обработку проведения. Во вложенном запросе добавим условие на текущий документ:

    | ГДЕ
    | ВыбытиеЖивотныхЖивотные.Ссылка = &Ссылка

    7. Для контроля остатков животных необходимо учитывать и движения которые выполнены текущим документом. Для этого подправим установку параметра:
    Запрос.УстановитьПараметр(“МоментВремени”, Новый Граница(МоментВремени(), ВидГраницы.Включая));

    8. Привяжем сообщение о нехватке животного к соответствующей строке табличной части.

    Сообщение.Поле = “Животные[“+(ВыборкаДетальныеЗаписи.НомерСтроки-1)+”].Животное”;
    (Хотя на моей версии платформы добиться адекватной работы СообщениеПользователю я так и не смог).
    В свойство Сообщение.Текст вводится лишняя буква «в».

    9. 9. В обработке проведения документа ПеремещениеЖивотных в запросе проверки отрицательных остатков нужно добавить условие РазмещениеЖивотныхОстатки.КоличествоОстаток < 0.

    10. В документе Инвентаризация» невозможно проставить нулевое фактическое количество животных. Нужно в табличной части «Животные» этого документа, в свойствах реквизита «КоличествоФакт» проверку заполнения поставить в значение «Не проверять».

    11. Отчет РазмещениеЖивотных, период не приводится к концу дня. Исправим в СКД, на закладке «Пареметры», в столбце выражение:

    КонецПериода(&Период, "День")

    Шаг 3. С этим шагом как-то пока не сложилось.
    Семинар проводить в организации некому (специфика специалистов другая). Бухгалтер работает на стандартных конфигурациях и полностью самодостаточен. Статьи. Плохо, для галочки, писать не хочется (интернет и так спамом и плагиатом завален), а хорошо пока не получиться. Все-же опыта маловато. Желание писать сами появятся после того, как поднимешь действительно интересную и действительно важную тему.

  3. Александр 12.11.2014 в 16:36

    ШАГ1
    Ростовцев Александр Юрьевич, программист г.Воронеж.
    Новым была информация о регистрах бухгалтерии и регистрах расчета. Стал знать больше но таких прям заблуждений, чтобы черное считать белым, трудно вспомнить. Новые навыки применяются там где на них есть спрос. Я имею в виду что то, что узнал мое. Где я это применяю? Да там где требуется! Конечно же подход однозначно усовершенствовался, с новыми знаниями открылись новые возможности. По сравнению с очным форматом :) Есть плюсы и есть минусы. Очный формат заставляет двигаться физически. Данный формат заставляет думать о том, что нужно двигаться :). Плюсы, что нет шума, вопросов которые тебе не интересны, ничто не отвлекает, сел и давай слушай господина Гилева, а он тебе… а ты его еще раз :)
    Спасибо за курс!

    ШАГ2
    1. Модуль формы документа ВыбитиеЖивотных. В тонком клиенте Константы доступны на сервере. Решение: Создать функцию НаСервере получить в ней значение и присвоить его.

    2. Регистр ВыбытияЖивотных имеет тип Остатки. Думаю, что остатки тут можно не считать. Решение: Выбрать вид регистра накопления обороты.

    3. Реализован справочник Клетки. А где хранить информацию о вольерах? Решение: Во первых переименовать, во вторых сделать иерархическим. Затем создать две группы вольеры и клетки.

    4. В документе Поступление. Стандартный реквизит Дата заполняется по уполнянию датой 1980 год. Решение: На вкладке Представления стандартного реквизита исправляется ситуация.

    5. В документе Инвентаризация количество и количество факт проверяется на заполнение. Но в этом случае нет возможности указать 0. Решение: снять проверку заполнение и настроить представление нуля, что бы его видно было.

    6. При открытии формы документа Поступление животных, источник поступления заполняется значением по умолчанию, что хранится в константе, а не тем, что записано в базе. Решение: выполнять проверку заполнености реквизита формы ЗначениеЗаполнено(Объект.Ссылка), если заполнено, тогда не нужно вставлять значение по умолчанию.

    7. При перемещении животных если формируется отрицательная нехватка срабатывает отмена проведения. Решение: дополнительное условия которое срабатывает если Нехватка положительная. Хотя можно в запросе добавить условие выводить только отрицательные остатки. и не добавлять условие после выполнения запроса.

    8. При создании документа ВыбытиеЖивотных срабатывает ОбработкаЗаполнения и в ней стандартному реквизиту Дата присваивается значение 1980. Решение: удалить вирусный код :)

    9. При проведении документа ВыбытиеЖивотных не выполняется контроль остатков. Решение: Запрос переделал. Параметр в виртуальную таблицу передал типа Граница, избавился от вложенного запроса.

    10. В документе ВыбытиеЖивотных при выводе сообщения оно не верно привязывалось к строке. Решение: От номера строки отнял единицу, чтобы получить значение индекса.

    ШАГ3
    http://forum.infostart.ru/forum26/topic116793/message1213462/#message1213462

    • Dobrenko Oleg 13.11.2014 в 07:38

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

  4. Шаг 1
    Меджидов Джабраил Шамилович ООО “Ай-Ти Консалтинг” г.Махачкала. Благодарю курсу изучил регистры бухгалтерии и расчета, все оказалось намного проще чем представлялось до начала обучения. В практике знания помогают писать более оптимальный (как с точки зрения времени выполнения так и внешнего вида) програмный код. Сам курс очень понравился жалею лишь что начал его изучение так поздно(с момента выхода курса прошло уже почти 3 года).

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

    Шаг 3
    http://www.forum.mista.ru/topic.php?id=711295

    • Dobrenko Oleg 11.11.2014 в 17:08

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