Базовый курс. Финальное задание 17-го потока
Объявляем начало финала 17-го потока базового курса по программированию.
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
1)Курс очень понравился, понравилось что все разбиралось досконально, все делалось на глазах, никаких темных пятен по ходу курса не было. Собственно работаю программистом 1с уже почти 2 года, однако узнал довольно много интересных деталей, на которые никогда бы не обратил внимание. Формат курса для меня является идеальным, т.к. во-первых сам могу выбрать время прохождения курса, во-вторых на очных курсах необходимо сконцетрированно слушать преподавателя, тут если что-то пропустил, то можно всегда пересмотреть. Являюсь финалистом вашего курса по конвертации данных, далее у меня запланирован продвинутый курс и курс по подготовке к специалисту.
Малышев Георгий Владимирович, Москва, программист 1с.
2)Возможные ошибки:
-В документе поступление при открытии формы каждый раз устанавливается значение реквизита “ИсточникПоступления”, а должно по логике устанавливаться только для новых документов. Исправление:
– Документ Инвентаризация, при заполнении тч выдавать предупреждение об очистке табличной части.
– Документ Выбытие животных – сначала проверяются остатки, потом формируются движения.
– Регистр Выбытие животных должен быть оборотным
– При создании нового документа выбытие животных устанавливается дата 01011980. Исправление – в обработке заполнения убрал веточку иначе.
– Отчет Размещение животных – необходимо получать отчет на одну секунду позже
– При проведении перемещения добавить в условие запроса проверки остатков “РазмещениеЖивотныхОстатки.КоличествоОстаток < 0"
3) Пытался помочь "миру" на форуме инфостарт, ник emal1989:
http://forum.infostart.ru/forum26/topic83873/
http://forum.infostart.ru/forum26/topic83861/
http://forum.infostart.ru/forum26/topic83858/
Георгий, благодарим за обратную связь по курсу.
Практическое задание принято, поздравляем, вы в списке финалистов. Ждем на продвинутом курсе!
1.Обратная связь по пройденному курсу
Гаврилин Игорь Викторович
Программист 1С, Иваново
Во-первых, хочу сказать большое спасибо за курс! Мои знания «до» и «после» – совершенно разные вещи. В 1С я полтора года, год работал сервисным инженером, в ноябре 2012 начал заниматься по курсу «1СПрограммист. Быстрый старт в профессию», в январе приступил к базовому курсу. Курс отличный! Очень понравилось то, что все моменты разбираются очень детально и последовательно. Пару раз из-за своей «торопливости» попадал в забавную ситуацию – в ходе прослушивания возникал вопрос, я начинал «исследования», остановив лекцию. Потратив полчаса-час, продолжал смотреть видео, и Евгений по ходу лекции за две минуты разъяснял то, на что я потратил кучу времени.
До курсов, если и создавал программный код, то делал это «наощупь», часто просто имитируя то, что уже было написано, писал по аналогии, не всегда понимая суть происходящего. Почти все информация была для меня новой. Я думаю, этот курс, даже при наличии знаний, может сильно помочь их упорядочить, расставить все по своим местам.
На очных курсах я не был, так что сравнить эти варианты могу только предположительно. Вообще, этот формат мне очень понравился! Удобно. Особенно удобно тем, что можно отложить те вопросы, которые сложно сразу осознать и вернуться к ним через день, тогда они гораздо проще усваиваются.
Еще один из плюсов такого формата – вся информация осталась, и в ней достаточно просто найти нужные моменты. Уже не раз пользовался поиском тех моментов, которые надо было детально вспомнить через оболочку «Просмотр курсов». Тем более, что все курсы можно смотреть из одной конфигурации – оболочки. Единственное пожелание – очень хочется иметь возможность ускоренного воспроизведения видео.
В данный момент работаю в основном с конфигурацией «Управление торговлей 10.3», создаю небольшие обработки, отчеты и доработки.
То есть, в практике, в основном, использую знания о базовых механизмах платформы, почерпнутых из данного курса.
Еще пару слов о том, что мне сильно понравилось и помогло:
-План-график (не позволяет расслабиться, понятно отстаешь ли ты от группы),
-Шикарные домашние задания и очень детальный видео разбор эталонного варианта решения ДЗ. Здорово то, что доступ к решению получаешь только после того, как отчитаешься о своем варианте решения, нет возможности полениться или пообещать себе, что решишь это ДЗ «попозже»…,
-мне очень понравилось использование готовых слайдов!!! При прослушивании нового материала у меня возникает желание делать записи, пометки, а это отнимает время. Здесь же готовые слайды – только суть и только основное. Хотя, я конечно же, их все-таки дополнял для себя
Также отдельное спасибо всей поддержке за обстоятельные ответы в мастер-группах!
2.По практической задаче – поиск ошибок:
1. Убрать значение заполнения из свойств стандартного реквизита «дата»документа «Поступление».
2. В документе «Поступление» у реквизита «Направление» свойства «проверка заполнения» поставить в «Выдавать ошибку».
3. В формы документа «Поступление», реквизит «Источник поступления» всегда заполнялся значением из константы «ОсновнойИсточник».
Это происходило даже при открытии существующего документа, в данных которого был указан другой источник поступления.
Стоит добавить в процедуру МодуляФормы условие:
Если Объект.Ссылка.Пустая() Тогда
Объект.ИсточникПоступления = Константы.ОсновнойИсточник.Получить();
КонецЕсли;
4.В документе «Выбытие» у реквизита «Направление» свойства «проверка заполнения» поставить в «Выдавать ошибку».
5.При создании нового документа «Выбытие» из списка документов этого вида в документе устанавливалась дата «01.01.1980 0:00:00». Стоит убрать строки из ОбработкиЗапонения МодуляОбъекта:
ДанныеЗаполнения = Новый Структура;
ДанныеЗаполнения.Вставить(«Дата», ’19800101′);
6.В обработке проведения документа «Выбытие» можно убрать первую строку:
Движения.РазмещениеЖивотных.Записывать = Истина;
Так как все равно движения записываем принудительно и этот флаг сбрасывается в значение «Ложь».
7.В документ «Выбытие» в запросе, проверяющим отрицательные остатки после записи движений документа параметр «МоментВремени» лучше передавать как границу с ВидГраницы.Включая.
8.Далее, при обработке результат запроса (из пункта 7) , при выводе соообщения стоит поменять код привязки сообщения к полю:
Сообщение.Поле = “Животные[“+(ВыборкаДетальныеЗаписи.НомерСтроки-1)+”].Животное”;
9.Исходя из того, что у РН «ВыбытияЖивотных» один регистратор и движения по нему происходят в одну сторону, то оптимальнее поменять вид этого регистра на вид «Обороты».
10.В обработке проведения документа «Перемещение» можно убрать первую строку
Движения.РазмещениеЖивотных.Записывать = Истина;
Так как все равно движения записываем принудительно и этот флаг сбрасывается в значение «Ложь».
11.В документе «Перемещение» в запросе, который проверяет, не ушли ли остатки животных в минус по клетке –отправителю надо добавить условие:
“ГДЕ РазмещениеЖивотныхОстатки.КоличествоОстаток < 0" . 3.Статья: http://infostart.ru/public/181955/
Попытки помощи на форумах: http://forum-1c.ru/index.php?topic=27891.0
http://forum-1c.ru/index.php?topic=27775.0
Игорь, благодарим вас за развернутый отзыв!
Шаги №2,3 приняты. Поздравляем с успешным окончанием базового курса! Желаем успехов в дальнейшем обучении!
Шаг 1:
Обратная связь по курсу:
Изначально предполагал пройти курс в режиме «заполнение пробелов + регистры расчета» и оказалось, что пробелы были в неожиданных местах. Рад что их обнаружил и устраняю.
Работа с регистрами расчетов была для меня вообще окутана туманом. Теперь, после прохождения курса, чувствую себя в этом вопросе гораздо увереннее.
«Заполненные пробелы» помогают уже сейчас, а новые проекты на 8.2 не за горами.
Курс представлен в очень удобном формате, лучшего я пока не встречал.
Алексей Совит, программист 1С, г.Днепропетровск.
Шаг 3: Адрес статьи: http://infostart.ru/public/182030/
Алексей, шаг№1 и 3 приняты, поздравляем с успешным окончанием курса!
Опубликовал статью на сайте:
http://1c-dev.com/
Иван, поздравляем, вы в списке финалистов базового курса!
А вот и мой шаг №3 . Я решилась опубликовать обработку по копированию изображений номенклатуры.
http://infostart.ru/public/181874/
Логин babushka
Ок, принято :)
Поздравляем, вы в списке финалистов!
1) Сметанин Александр Викторович.
Программист 1С. Рига, Латвия.
Во первых хочу поблагодарить за замечательный курс.
Очень понравилась методика обучения, а именно, работа на конкретных примерах.
Очень доступно и подробно разбирались, базовые ситуации.
Для меня всё было интересно. Очень понравились приемы работы с запросами, есть желание более подробно разобраться с СКД, но я думаю в продвинутом курсе у меня будет такая возможность.
Также никогда ранее не работал с 8.2. Очень впечатлила возможность создания и настройки интерфейса. Теперь стали понятны основные приемы создания управляемых форм и работа с ними, и клиент-серверное разделение. Очень удобна автоматическая проверка на заполненность, и сообщения пользователю с указанием места ошибки. Никогда ранее не сталкивался с бухгалтерий и расчетами зарплат. Поэтому сначала меня напугали эти темы, но потом всё стало укладываться по полочкам, и с каждым уроком становилось всё яснее. В целом осталось много положительных впечатлений от курса. Спасибо.
=============================================================
2) Найденные ошибки
1 При открытии документа “Поступление”, источник поступления всегда устанавливается в значение “Рождение на территории зоопарка”, даже если это не новый документ.
Добавил проверку, на заполненность ссылки.
Объект.ИсточникПоступления = Константы.ОсновнойИсточник.Получить();
КонецЕсли;
2 При открытии формы нового документа “Поступление” устанавиливалась дата которая была зашита по умолчанию в значении заполнения стандартного реквизита “Дата”.
Убрал, чтобы устанавливалась дата текущего дня.
3 При открытии формы нового документа “ВыбытиеЖивотных” устанавиливалась дата “01.01.1980 0:00:00” так как был установлен флаг «Заполнять из данных заполнения» у стандартного реквизита “Дата” и в обработке заполнения были строки:
ДанныеЗаполнения = Новый Структура;
ДанныеЗаполнения.Вставить(“Дата”, ‘19800101’);
Убрал, чтобы устанавливалась дата текущего дня.
4 Реквизит “Количество” целое число и это понятно, но есть возможность указать отрицательное значение. Мне кажется это не совсем правильно. Установил флаг “Не отрицательный”.
5 Возможно не обязательно, но для удобства включил отображения регистров в формах документов. Для удобства.
6 Также в модуле формы документа “ВыбытиеЖивотных” появляется ошибка (Проверка: Тонкий клиент). Более верным было бы заполнять реквизит “Направление” в процедуре “ПриСозданииНаСервере” как в документе “Поступление” заполняется “ИсточникПоступления”
7 При просмотре отчета “Размещение животных”, обнаружил отрицательные значения.
Оказалось, что при “Выбыитии”, не верно происходит проверки остатков.
При проверке не учитывался текущий документ. Обработал данную ошибку.
8 Так же при проверке остатка, при выводе сообщения с указанием строки, сообщение выводилось по номеру строки, нужно отнимать единицу, так как индекст начинается с 0.
Изменил строку в запросе: “ДанныеДокумента.НомерСтроки – 1 КАК ИндексСтроки”
и строку в выводе сообщения соответственно.
9 По регистру “ВыбытияЖивотных”, проходит только одноименный ему документ. В отчете “Анализ выбытий животных” используется “КоличествоОборот”. В данном случае правильнее использовать тип регистра обороту.
После изменения регистра на оборотный, перепровел документы, и изменил запрос отчета.
ВыбытияЖивотныхОбороты.Животное,
ВыбытияЖивотныхОбороты.Направление,
ВыбытияЖивотныхОбороты.КоличествоОборот КАК Количество
ИЗ
РегистрНакопления.ВыбытияЖивотных.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ВыбытияЖивотныхОбороты
10 В документе «Инвентаризация» при заполнении остатками, не учитывается дата текущего документа. Остатки получаются без каких либо параметров. Добавил, параметр “МоментВремени”
11 В конфигурации используются “Управляемые блокировки”, добавил блокировки при проведении документов.
12 При проведении документа “Перемещение”, при проверке остатков, в запросе не указывается условие сравнения остатка с 0. “ГДЕ РазмещениеЖивотныхОстатки.КоличествоОстаток < 0"
13 У регистров накопления у "Количества" не стоит флаг проверка заполнения.
14 Мне кажется что для документа "Инвентаризация", не нужны флаги привелигированного режима проведения, так как документ не проводится.
=============================================================
Темы семинара:
"Знакомство с платформой 8.2"
"Управляемые формы"
"Построение отчетов с помощью СКД"
Фотографии с семинара:
Александр, благодарим за отзыв.
Шаг №2,3 приняты. Поздравляем с успешным окончанием базового курса, ждем на продвинутом! :)
А. Обратная связь.
Во первых ОГРОМНОЕ СПАСИБО! Новым было практически все. Я начала заниматься 1С с сентября 2012. Ходила на очные курсы. Результат был такой – “Слышал звон, да не знаю, где он”. На работе при получении какого-либо задания, первая реакция паника – не знаю с чего начать, куда смотреть. После базового курса в голове появилась система, Паники уже нет. Понимаю, в каком модуле надо писать, как найти нужную инфу в синтакс- помощнике и очень помогает отладчик. Вот от главного заблуждения – что ничего не получится, я с вашей помощью и избавилась. При написании кода, очень часто понимаю, что нечто подобное было при решении домашних заданий и можно применить теперь уже знакомое решение. Формат курсов очень удобен. Особенно для меня был важен разбор ДЗ с конкретными примерами кода, запросами. Я не переписывала полученную базу, а вносила исправления в свою, там где я выполняла ДЗ. Получив ссылку на эталонное решение, вносила в свою базу необходимые изменения. Это, правда, занимало много времени, но зато закрепляло понимание.
Уже купила набор из курсов по конвертации и продвинутый курс.
Так что продолжу занятия. Еще раз Спасибо!
Зельвенская Наталья Яковлевна. Программист 1С Москва
Б. Ошибки
1. Объект.Направление = Константы.ОсновноеНаправление.Получить();
– в фоме документа Выбытия выполняется на клиенте, что не работает в тонком клиенте. Константу необходимо получать на сервере. Либо серверный вызов, либо в процедуре «ПриСозданииНаСервере».
2.Вид регистра накопления ВыбытияЖивотных Остатки.При этом регистратором является только один документ с видом движения Приход. Бессмысленно говорить об остатках.Вид регистра должен быть ОБОРОТы, для получения информации по выбытию животных за период.
3. Обработка проведения документа Выбытия
– Ошибка в параметре запроса МоментВремени(). Нужно передавать не МоментВремени(), а границу, включающую МоментВремени документа.
4. – неверная привязка к полю при выдаче сообщения. Индекс на единицу меньше строки. Надо вычитать единицу.
ВыборкаДетальныеЗаписи.НомерСтроки – 1)
5. ПриСозданииНаСервере документа Поступление
Объект.ИсточникПоступления = Константы.ОсновнойИсточник.Получить();
выполняется всегда. Заполнять нужно только не заполненное.
Если НЕ ЗначениеЗаполнено(Объект.ИсточникПоступления) Тогда
Объект.ИсточникПоступления = Константы.ОсновнойИсточник.Получить();
КонецЕсли;
6. Стандартный реквизит ДАТА документа Поступление заполняется
датой 01.01.1980 0:00:00, что установлено как ЗначениеЗаполнения в конфигураторе в свойствах реквизита.. Это надо убрать.
7. Стандартный реквизит ДАТА документа Выбытия стоит галочка Заполнять из данных заполнения и он заполняется датой 01.01.1980 0:00:00 в ОбработкаЗаполнения. Надо убрать галочку и ветку Иначе в процедуре Обработка Заполнения
8. ОбработкаПроведения документа Перемещение – при контроле остатков отсутствует условие с проверкой на отрицательный остаток. В результате невозможно провести правильный документ. В запрос нужно добавить условие “ГДЕ РазмещениеЖивотныхОстатки.КоличествоОстаток 0, то в отчете увидим размещение животных на данный момент и их общее количество.
9. В табличной части Животные всех документов для реквизита Количество нужно установить свойство Неотрицательное.
Очень неудобно, что в формах документов не установлена галочка для перехода к просмотру данных регистра.
10. Отчет «Размещение Животных». При проведении документа «ПеремещениеЖивотных» животное из одной клетки выбывает, в другую прибывает, соответственно в регистре в разрезе измерений клетка и животное получается отрицательный и положительный остаток, что попадает в отчет и в итоге получаем по животному ноль. И неверный общий итог по количеству животных. По моему, если мы хотим в отчете видеть размещение животных на день запроса,нужно в запросе брать только положительные остатки. В запрос нужно добавить условие «ГДЕ РазмещениеЖивотныхОстатки.КоличествоОстаток >0″. При этом в отчете увидим размещение животных на данный момент и их общее количество.
И в параметре Период нужно прописать выражение КонецПериода(&Период,»День») для учета последнего дня.
11. И еще, по хорошему, при создании документов поступления и выбытия на основании документа Инвентаризации должен быть контроль, созданы ли уже ранее по этому документу инвентаризации поступления и выбытия. А то получается, что можно создать, сколько угодно документов.
Механизм может быть разный. Можно предложить создать в документах Поступления и Выбытия реквизит – ДокументОснование, в который записывать ссылку на документ инвентаризации, и в момент создания нового документа на основании документа Инвентаризации проверять количество в созданных ранее.
С. Вот третий шаг для меня наиболее трудный. На работе нас по 1С двое и устраивать семинар для моего руководителя, имеющего гораздо больший опыт и знания в 1С, просто смешно. Думаю, что статьи писать тоже рановато. Вот после окончания Продвинутого курса и Курса по конвертации, возможно. Так что прошу простить мне невыполнение третьего шага. Пока не хватает уверенности учить других.
Наталья, благодарим за отзыв!
>Уже купила набор из курсов по конвертации и продвинутый курс.
Отлично, значит мы с вами ещё встретимся :)
По практической части – зачет. А вот по шагу №3 всё таки придется отчитаться.
Найдите на форуме какой-нибудь не сложный вопрос, поучаствуйте в дебатах :)
1. Свой отзыв хочу начать со слов благодарности всем авторам курса. Я работаю программистом уже три года и все это время новый материал приходилось усваивать по ходу, часто не понимая принципов, которые заложены в используемые механизмы. Данные курс позволил мне систематизировать все мои знания, а где наконец разобраться с тем чего не знал. Преимущество курса в том, что он дает понимание основных принципов функционирования платформы 1С. Так же отдельно хотелось бы отметить блок автоматизации расчетов заработной платы, ранее я боялся данных задач как огня, теперь же я решаю из без всяких сомнений.
Отдельно отмечаю формат обучения. Его особенности с моей точки зрения:
– позволяет запланировать собственной график обучения и заниматься в любое время;
– очень удобный формат взаимодействия в мастер-группе;
– множество полезного материалы, помимо основной сетки обучения;
– все рассматривается с практической точки зрения и на конкретных примерах, что дает правильное направление для развития представления о механизмах платформы.
– ну и конечно ехать, то никуда не нужно!
По ходу обучения не раз применял полученные знания и как следствие стал делать работу более качественно и быстро, что и повысило мой доход. Так же запланировал сдачу экзамена на специалиста по платформе уже в этом году, надеюсь что курс по подготовке мне в этом поможет. Огромное спасибо еще раз и жду нового потока, теперь уже Продвинутого курса!
2. Выполнение финального задания:
1. Ошибки при в процедуре проведения документа ВыбытиеЖивотных:
– неверный контроль остатков, так как используется новая методика проведения, то нужно передавать момент времени включая границу документа.
– Вид регистра ВыбытияЖивотных должен быть – Обороты.
2. При открытии документа ВыбытиеЖивотных нельзя получать константу, это ошибка. Данный механизм нужно перенести в обработку заполнения. Так же непонятно зачем у документа заполнять дату по умолчанию 1980 г.
3. В форме документа Поступление нужно опять же вынести код при создании на сервере в обработку заполнения.
4. В документах в командном интерфейсе форм нужно включить отображение движений по регистрам.
5. Отчет размещение животных работает некорректно при указании периода, не учитывается последняя секунда. Нужно в параметрах нужно указать –
3. Адрес статьи – http://infostart.ru/public/181336/
Андрей, благодарим за отзыв!
Шаги №2 и3 приняты, поздравляем вас с успешным окончанием базового курса! Ждем на продвинутом!
Практическое задание:
В ходе анализа конфигурации составлен список замечаний:
1) Документ Поступление: документу разрешено оперативное проведение. При создании документа устанавливается дата 01.01.1980. Документ проводится неоперативно.
Корректировка: убрать значение заполнения для реквизита Дата.
Проверка: при создании документа устанавливается текущая дата и документ проводится оперативно.
2) Документ Поступление: в процедуре ОбработкаЗаполнения при заполнении по документу Инвентаризация не проверяется пометка удаления документа.
Корректировка: добавить проверку свойства ПометкаУдаления в запрос – обрабатывать не помеченные на удаление документы.
Проверка: при вводе на основании документа с пометкой на удаление, заполнение Поступления не происходит.
3) Документ Поступление: реквизит ИсточникПоступления заполняется в модуле формы в обработчике ПриСозданииНаСервере.
Корректировка: переношу заполнение в модуль объекта, в обработчик ОбработкаЗаполнения.
3) Документ Инвентаризация: свойства реквизитов Количество и КоличествоФакт табличной части Животные не позволяют ввести 0 как фактическое количество животных.
Корректировка: реквизиту КоличествоФакт устанавливаю свойство ПроверкаЗаполнения = Не проверять.
Проверка: документ с нулевым фактическим количеством не выдает ошибок.
4) Документ Инвентаризация: заполнение документа выполняется остатками регистра РазмещениеЖивотных вне зависимости от даты документа.
Корректировка: в запрос добавляю выбор остатков на момент времени.
Далее в коде устанавливаю параметр:
Запрос.УстановитьПараметр("Момент", Новый Граница(Объект.Дата, ВидГраницы.Включая));
Иначе
Запрос.УстановитьПараметр("Момент", КонецДня(Объект.Дата));
КонецЕсли;
5) Документ ВыбытиеЖивотных: при создании документа устанавливается дата 01.01.1980. Документ проводится неоперативно.
Корректировка: убираю заполнение даты в процедуре ОбработкаЗаполнения() и для реквизита Дата снимаю флаг Заполнять из данных заполнение.
Проверка: при создании документа устанавливается текущая дата и документ проводится оперативно.
6) Документ ВыбытиеЖивотных: заполнение поля Направление для нового документа выполняется в модуле формы в обработчике ПриОткрытии(). Обращение к константе выдаст ошибку в тонком клиенте.
Корректировка: устанавливаю значение реквизита в процедуре ОбработкаЗаполнения(). Код установки Направления в обработчике ПриОткрытии() удаляю.
7) Документ ВыбытиеЖивотных: в процедуре ОбработкаЗаполнения при заполнении по документу Инвентаризация не проверяется пометка удаления документа.
Корректировка: добавить проверку свойства ПометкаУдаления в запрос - обрабатывать не помеченные на удаление документы.
Проверка: при вводе на основании документа с пометкой на удаление, заполнение документа ВыбытиеЖивотных не происходит.
8) Документ ВыбытиеЖивотных: отсутствует проверка заполнения реквизита Направление. Значение этого реквизита записывается в измерение регистра накопления.
Корректировка: для реквизита Направление устанавливаю свойство ПроверкаЗаполнения = выдавать ошибку.
Проверка: документ не проводится, если реквизит не заполнен.
9) Документ ВыбытиеЖивотных: процедура ОбработкаПроведения(), неверно реализован контроль отрицательных остатков. Запрос остатков выполняется на МоментВремени().
Корректировка: меняю МоментВремени() на Новый Граница(МоментВремени(), ВидГраницы.Включая)
Проверка: проверка выполняется корректно.
10) Документ ВыбытиеЖивотных: процедура ОбработкаПроведения(), при информировании пользователя об отрицательных остатках, сообщение выводится не в той строке документа.
Корректировка: при обращении по индексу к строке ТЧ необходимо использовать "(ВыборкаДетальныеЗаписи.НомерСтроки-1)" вместо "ВыборкаДетальныеЗаписи.НомерСтроки".
Проверка: сообщение выводится корректно.
11) Документ ВыбытиеЖивотных: процедура ОбработкаПроведения(), при формировании движений по регистру ВыбытияЖивотных явно не указан ВидДвижения.
Корректировка: добавляю строку Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
12) Документ ПеремещениеЖивотных: процедура ОбработкаПроведения(), ошибка в контроле отрицательных остатков. В запрове отсутствует условие выбора отрицательных остатков.
Корректировка: добавляю в запрос остатков условие "РазмещениеЖивотныхОстатки.КоличествоОстаток < 0".
Проверка: контроль остатков отрабатывает верно.
13) РегистрНакопления ВыбытияЖивотных: это регистр остатков, но в регистр попадают движения (приход) только одного документа - ВыбытиеЖивотных. Для регистра включены итоги, и таблица итогов будет расти.
Корректировка: установить вид регистра "обороты". Выполнить перерасчет итогов регистра. Замечание 11 становится неактуальным, добавленную строку нужно убрать.
14) в базе не рассчитаны итоги по регистрам накопления.
Корректировка: выполнить расчет итогов.
15) командный интерфейс: рекомендуется вынести команды создания элементов справочников и документов в панель действий.
Корректировка: команды добавлены в панель действий Создать командного интерфейса рабочего стола.
16) Документы Поступление, Инвентаризация, ВыбытиеЖивотных, ПеремещениеЖивотных: допускается работа с отрицательными значениями количественных реквизитов.
Корректировка: в настройках реквизитов Количество (КоличествоФакт) документов можно установить флаг Неотрицательное. Но в таком случае может потребоваться создание документа Сторно.
Практическую часть принимаю, ждем от вас отчеты по пунктам 1 и 3.
Шаг 1. Обратная связь по курсу
Киселев Сергей Петрович, программист 1С, г. Домодедово, МО.
Как бывшему программисту на 1с77 мне, конечно же, особо интересны были темы про клиент-серверное взаимодействие и технология управляемых форм. Пришло понимание различий контекстов программных модулей, доступность свойств и методов из разных контекстов, как передается управление между клиентскими и серверными процедурами. Неожиданно сложной оказалась подсистема расчета, по сравнению с 1с77, но это возможно, потому что я с ней не работал. Благодаря тому, что изложение материала ведется доступным и понятным языком, многие вещи, которые раньше казались сложными, теперь не вызывают проблем. В данный момент работаю с «Управлением торговлей 11» и требуется разработка дополнительного функционала. До изучения курса у меня было немало темных мест в знании платформы и приемах разработки, теперь ситуация намного улучшилась, уверенность намного возросла. Впереди меня конечно же ждет «Продвинутый Курс». Формат обучения в данном курсе я считаю самым лучшим на сегодняшний день.
Шаг 2. Практическое задание – Поиск ошибок
1. {Документ.ВыбытиеЖивотных.Форма.ФормаДокумента.Форма(7,24)}: Переменная не определена (Константы) Объект.Направление = <>Константы.ОсновноеНаправление.Получить(); (Проверка: Тонкий клиент) Эта конструкция работает только в толстом клиенте. Чтение данных из базы недоступно на тонком клиенте. Необходимо делать заполнение этого параметра в процедуре «ПриСозданииНаСервере».
2. Документ «Поступление». В процедуре «ПриСозданииНаСервере» всегда происходит заполнение реквизита «ИсточникПоступления» из константы. Это делать нужно только для вновь созданных объектов.
3. В реквизите «Дата» документа «Поступление» установлено значение заполнения «01.01.1980 0:00:00». Это надо убрать.
4. При вводе нового документа «ВыбытиеЖивотных» устанавливается дата «01.01.1980 0:00:00». В документе в процедуре «ОбработкаЗаполнения» устанавливаются ДанныеЗаполнения.Вставить(«Дата», ’19800101′) и в реквизите «Дата» этого документа установлен флаг «Заполнять из данных заполнения». Это все надо убрать.
5. Регистр накопления «ВыбытиеЖивотных» типа «Остатки» не закрывается в ноль. Нужно изменить тип на «Обороты».
6. Документ «Выбытие животных» разрешает списывать животных в минус. Не работает контроль остатка. Ошибка в передаче неверного параметра в запрос. Запрос.УстановитьПараметр(«МоментВремени», МоментВремени()) Нужно передавать не МоментВремени(), а границу, включающую МоментВремени документа.
7. Форма документа «Инвентаризация». Процедура ЗаполнитьНаСервере(). Запрос получает остатки на текущую дату. Необходимо получать остатки на дату документа, для этого нужно передавать в запрос параметр МоментВремени документа.
8. Документы «Поступление», «Перемещение» и «Выбытие» позволяют делать движения животных с отрицательным количеством. Нужно запретить в реквизитах «Количество» отрицательные числа.
9. Документ «Перемещение» не дает перемещать, если на остатке после перемещения остается положительное количество. Ошибка в контроле остатка, в запросе не хватает условия «ГДЕ РазмещениеЖивотныхОстатки.КоличествоОстаток < 0» 10. Как мне кажется при создании документа «Поступление» или «Выбытие» на основании документа «Инвентаризация» правильно было бы устанавливать дату такую же как в документе основания. 11. Данные по Источникам Поступления фиксируются только в документах поступления и больше нигде. Т.е. проанализировать информацию по этой аналитике нельзя. (разве что отсортировать или сгруппировать в списке документов поступления). Необходимо где-то хранить эту информацию отдельно: новый Оборотный регистр или реквизитом в регистре «РазмещениеЖивотных»; а также создать новый отчет для вывода этой информации пользователю. Шаг №3 Фото мини-семинара:
Сергей, благодарим за отзыв!
Шаги № 2 и 3 приняты, поздравляем с успешным окончанием базового курса!
Успехов в дальнейшем обучении!
Оперативный учет – запись в регистры, а потом проверка отрицательных остатков.
Бухгалтерский учет – как работают забалансовые счета и отличие российского бухучета от международного.
Расчет – вся схема расчета (сначала запись, потом обход ее и расчет)
Применений новых знаний в реальной работе еще не было, но в ближайшем будущем буду использовать то, что было для меня новым в оперативном учете. Так же вполне вероятно буду разбираться с зарплатой, и там буду учитывать схему расчета.
На очных курсах бывать не приходилось, ввиду загруженности, поэтому данные курсы для меня были очень полезны тем, что заниматься можно было в любое удобное время. Кроме того, есть возможность догнать группу, если отстал (на очных курсах этот материал бы просто пропустил).
Кудасов Иван Александрович, Ведущий программист 1С, Екатеринбург.
1. В форме документа Поступление Источник поступления всегда заполняется как Рождение на территории зоопарка (даже если открывается уже существующий документ).
В процедуру ПриСозданииНаСервере вставил условие:
Если Объект.Ссылка.Пустая() Тогда
2. В форме документа ВыбытиеЖивотных процедуры ПриОткрытии (она выполняется на клиенте) выполняется обращение к константе. Соответственно в режиме толстого клиента все будет работать нормально, а в тонком клиенте выдастся ошибка.
Перенес текст процедуры в процедуру ПриСозданииНаСервере.
3. В документе Поступление зачем-то устанавливается дата 01.01.1980 0:00:00, что может приводить к потенциальным ошибкам.
Убрал Значение заполнения для стандартного поля Дата.
4. При заполнении документа Инвентаризация документу не устанавливается признак что он был изменен.
Добавил в конец процедуры ЗаполнитьНаСервере строку:
ЭтаФорма.Модифицированность = Истина;
5. Учитывать выбывших животных (остатки) бессмыслено.
Изменил вид регистра накопления ВыбытияЖивотных с остатки на обороты.
6. В документе инвентаризация не допускаются пустые значения в реквизитах Количество и КоличествоФакт в табличной части Животные, хотя такое возможно.
Установил для этих реквизитов значение Проверка заполнения в Не проверять
7. В документе ВыбытиеЖивотных в процедуре ОбработкаЗаполнения зачем-то устанавливается дата 01.01.1980. Срабатывает в случае ввода не на осноновании документа Инвентаризация (например при обычнном вводе нового).
Удалил ветку Иначе и убрал галочку со значения Заполнять из данных заполнения стандартного реквизита Дата
8. В документе инвентаризация у значения реквизита КоличествоФакт в табличной части Животные нет смысла, если содержится отрицательное значение.
Установил в свойствах этого реквизита галочку Не отрицательное
9. При проверке отрицательных остатков в документе ВыбытиеЖивотных не учитываются движения текущего документа.
Изменил передачу параметра следующим образом:
Запрос.УстановитьПараметр(“МоментВремени”, Новый Граница(МоментВремени(), ВидГраницы.Включая))
10. В этом же документе в случае нехватки животного в клетке устанавливается неправильный индекс строки (не учитывается что индекс меньше номера строки на единицу)
Изменил привязку к полю следующим образом:
Сообщение.Поле = “Животные[“+(ВыборкаДетальныеЗаписи.НомерСтроки – 1)+”].Животное”;
11. Долго думал, почему после изменения регистра накопления ВыбытияЖивотных на оборотный перестал показывать правильную информацию отчет АнализВыбытийЖивотных. Проблема решилась после тестирования и исправления ИБ.
Иван, благодарим за отзыв. Мы рады что наши курсы были для Вас полезны.
Практическую часть принимаем, ждем от вас отчет по шагу №3.