Базовый курс. Финальное задание 35-го потока
Объявляем начало финала 35-го потока базового курса по программированию.
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
Часть 1
1) Нового из курса я узнал достаточно много, несмотря на то, что я уже “совершеннолетний 1С внедренец” (опыт работы 18 лет).
Новостью была работа с тонким клиентом (до сих пор опыт в этой области невелик). Особенно важным и новым было для меня оповещение и ясность в вопросе какой модуль где компилируется и как они друг друга вызывают.
А самым важным, ради чего я и пошел на этот курс: расчетные задачи — до сих пор не занимался этим делом вообще и хотел изучить тему. Какие-то понятия в этой области появились.
2) Не скажу про заблуждения, видимо они все со мной остались. :)
3) Сейчас у меня пауза в делах разработки: применить новые навыки пока вопрос ближайшего будущего.
4) Неожиданного не было.
5) Формат обучения против очного формата мне показался предпочтительным: предложи выбирать между таким вариантом удаленного обучения и очными курсами — выберу удаленный вариант.
Часть 2
1) Регистр “ВыбытияЖивотных” сделан регистром остатков, хотя по логике системы это может быть оборотным регистром, но не остаточным — он не выводится в ноль.
2) Если на основании инвентаризации можно создать поступление или выбытие, то нужна какая-то связь этих документов с инвентаризацией-основанием. Классическое решение: реквизит ДокОснование, но здесь никакой подобной документов связи нет, а без этого можно несколько раз ввести документы поступления и выбытия по одной и той же инвентаризации.
3) Раз уж по инвентаризации возможно выбытие, то должно быть соответствующее направление выбытия, на которое относить списанных по результатам инвентаризаций. Такого направления в справочнике нет.
4) Проведение документа “ВыбытиеЖивотных”: происходит повторный перебор строк документа — те же движения можно было бы сформировать за один проход, т.к. не потребовалось бы для этого вычислять какие-то дополнительные данные. Модуль неоптимален по скорости.
5) Там же, при проверке отрицательных остатков: параметр в запрос передается
так получатся остатки регистра без учета движений самого документа — проверка на отрицательные остатки некорректна.
6) Спорный момент: Инвентаризация. Заполнение в запросе обращается не к итогам на дату, а к окончательным. Оно не критично, если инвентаризацию сразу вносить в 1С, хуже если забивают документы задним числом, тогда заполнение не поможет пользователю — прийдется учетное количество сверять с отчетными данными, а это источник ошибок. Возможно тут я уже придираюсь.
7) Несколько странно выглядит реквизит ИсточникПоступления в документе Поступление: не ясно зачем он нужен, раз по нему не ведется никакой аналитики и зачем его заполнять. Возможно это — задел под будущие доработки, а иначе смысл его непонятен. Если потом строить отчеты с отбором или группировкой по данным из шапки документа (с обращением “через точку”), то такие отчеты не будут быстрыми — по данным из регистров быстрее.
все, на что взгляд упал.
Часть 3 не получилась по организационным причинам… :(
C почтением,
Начальник отдела разработки и сопрвождения ПО,
ОАО Татспиртпром, г. Казань.
Власовский С.М.
Сергей, благодарим вас за обратную связь!
Практическое задание принято.
>Часть 3 не получилась по организационным причинам… :(
Можете помочь кому-нибудь на форуме, думаю для программиста с вашим опытом это не составит труда :)
Отчет по финальному домашнему заданию.
>Финальное домашнее задание состоит трех частей:
>1. Обратная связь по пройденному курсу.
>2. Выполнение практической задачи.
>3. Помощь начинающим в конфигурировании платформы.
> Шаг 1. Обратная связь по курсу
> Мы завершаем базовый курс, поэтому хотелось бы подвести
финальную черту и узнать ваше мнение о базовом курсе. Оставьте
в произвольном виде обратную связь по курсу. Или используйте
вспомогательные вопросы:
> • Что нового Вы узнали из базового курса по программированию?
> • От каких заблуждений избавились?
> • Если Вы работаете на практике с платформой «1С:Предприятие 8», то, каким образом вам удалось применить новые навыки (какие результаты были достигнуты);
> • Если Вы пока не работаете реальных проектах по внедрению решений на «1С:Предприятии 8», то, что оказалось неожиданным из материалов курса?
> • Насколько удобен, оказался формат обучения в сравнении с очным форматом?
> Свой отзыв оставляйте в комментарии к текущей записи. Укажите своё ФИО, должность и город, где вы работаете. Эти данные будут использоваться для публикации в списке финалистов и при составлении рекомендательных писем. Спасибо вам, за предоставленную обратную связь!
Гиричев Андрей Михайлович, руководитель отдела ИТ, город Москва.
Большое спасибо Евгению Гилеву за интересное, системное изложение материала, подкрепленное практическими примерами и заданиями, которые позволили открыть много интересного и главное практически применимого в моей работе.
Из базового курса для себя я систематизировал и уяснил принципы и детали работы различных объектов конфигурации как единого целого, понял как работают и строятся управляемые формы, структуру модулей системы, как работают процедуры в различном контексте, как именно производится клиентское и серверное взаимодействие,
как настраиваются и работают планы видов характеристик, как настраиваются и работают механизмы по оперативному учету, бухгалтерии и расчету, освоил практические техники работы с системой компоновки данных, контролю остатков и языком запросов. Избавился от заблуждения, что с расчетами лучше дела не иметь, поскольку там все “слишком сложно”.
Используя новые знания я оптимизировал работу нескольких “проблемных” отчетов и обработок, используемых в нашей организации, расширил функциональность имеющихся объектов и смог реализовать более сложные запросы от пользователей системы самостоятельно, в тоже время как руководитель отдела смог на более качественном уровне производить постановку задач, производить контроль выполнения, оперативно решать возникающие проблемы, консультировать и обучать подчиненных мне сотрудников.
Формат обучения оказался очень удобен, он позволил без ущерба для работы и личной жизни в достаточно сжатые сроки освоить новые и окончательно систематизировать имеющиеся знания по платформе.
> Шаг 2. Практическое задание
> ООО «Энимал-Софт» разработало конфигурацию по заказу
Екатеринбургского зоопарка.
> Функциональные возможности конфигурации:
> 1. Ведется количественный учет животных. Хранятся данные о
размещении животных (вольеры, клетки). Для анализа информации
используется отчет «Размещение животных».
> 2. Отражаются поступления животных (в том числе, при рождении на
территории зоопарка).
> 3. Ведется учет перемещений животных между помещениями(клетками,
вольерами).
> 4. Для инвентаризации животных создан специальный документ, в
котором отражается учетное и фактическое количество. На основании
расхождения можно сформировать документы поступления и выбытия.
> 5. Выбытие животных фиксируется отдельным документом,
указывается направление выбытия. Для анализа информации используется
отчет «Анализ выбытий животных».
> Информационная база должна корректно работать в толстом и
тонком клиентах управляемого приложения.
> Учтите, что ошибки могут быть не только в программном коде, но и в
настройках объектов. В приведенном решении содержится, по крайней мере,
10 ошибок.
> Ваша задача – оттестировать прикладное решение, найти
максимальное количество ошибок и описать пути их исправления.
При этом учитывайте, что функционал заказчика полностью устраивает.
> Выгрузку ИБ с исправлениями предоставлять не требуется. Отчет о
выполнении домашнего задания нужно выложить в виде комментария в
соответствующую запись на сайте.
Найденные ошибки и пути их исправления:
1. Документ.ВыбытиеЖивотных.Форма.ФормаДокумента.Форма(7,24)}:
Переменная не определена (Константы).
Путь решения – заменить код
на вызов серверной функции без контекста:
...
&НаСервереБезКонтекста
Функция ПолучитьОсновноеНаправление()
Возврат Константы.ОсновноеНаправление.Получить();
КонецФункции
2. Регистр “ВыбытияЖивотных” – имеет вид “Остатки”, хотя по сути
движение происходит только в одну сторону – выбытие и регистр никогда не
сойдется в 0. Поэтому следует указать вид “Обороты”, произвести пересчет
итогов.
3. В модуле объекта документа “ВыбытиеЖивотных” не работает контроль
отрицательных остатков, т.е. возможно сделать выбытие большего
количества животных, чем есть в наличии на момент проведения документа.
Для исправления этого в модуле объекта документа “ВыбытиеЖивотных”
вместо кода:
внести код которых учитывает остатки на момент включая момент проведения
документа:
Граница(МоментВремени(),ВидГраницы.Включая));
4. При нехватке животных неверно определяется номер строки и поле
табличной части “Животные” в документе “ВыбытиеЖивотных” при выдаче
сообщения пользователю.
Для исправления этого в модуле объекта документа “ВыбытиеЖивотных”
вместо строки кода:
"Животные["+ВыборкаДетальныеЗаписи.НомерСтроки+"].Животное";
пишем код учитывающий правильную строку табличной части и более удобное
и логичное для исправления пользователем поле “количество”:
Сообщение.Поле = "Животные["+НомерСтрокиСОшибкой+"].Количество";
5. В модуле объекта документа “Поступление” в процедуре
ОбработкаЗаполнения не заполнялась дата документа, что могло привести к
искажению данных.
Для исправления в код процедуры внесено изменение:
Дата = ДанныеЗаполнения.Дата;
КонецЕсли;
КонецПроцедуры
6. В модуле объекта документа “ВыбытиеЖивотных” в процедуре
ОбработкаЗаполнения не заполнялась дата документа, а также присутствовал
избыточный код, что могло привести к искажению данных.
Для исправления в код процедуры внесено изменение:
Дата = ДанныеЗаполнения.Дата;
КонецЕсли;
КонецПроцедуры
7. В документе “Инвентаризация” в реквизите “Количество” стоит свойство
“Проверка заполнения” в значении “Выдавать ошибку”, что приводит к
невозможности вводить фактические “излишки” животных при их отсутствии
по учету базе данных. Для исправления следует установить в реквизите
“Количество” свойство “Проверка заполнения” в значение “Не проверять”.
8. Аналогично в документе “Инвентаризация” в реквизите “КоличествоФакт”
стоит признак “Проверка заполнения” в значении “Выдавать ошибку”, что
приводит к невозможности вводить фактические “недостачи” животных при их
фактическом отсутствии в зоопарке. Для исправления следует установить в
реквизите “КоличествоФакт” свойство “Проверка заполнения” в значение “Не
проверять”.
9. Сомнительна установка значения свойства “Иерархический справочник” в
справочнике “НаправлениеВыбытия”, в то время как в задании не указана
необходимость какой-либо классификации, кроме того это свойство не
установлено в аналогичных чисто информационных справочниках:
ИсточникиПоступления, Клетки.
10. В модуле объекта документа “ПеремещениеЖивотных” не работает контроль отрицательных остатков, в результате невозможно сделать перемещение животных, даже если они есть на остатке в конкретной клетке, чем есть в наличии на момент проведения документа.
Для исправления этого в модуле объекта документа “ПеремещениеЖивотных” вместо кода:
| РазмещениеЖивотныхОстатки.Животное,
| РазмещениеЖивотныхОстатки.Клетка,
| -РазмещениеЖивотныхОстатки.КоличествоОстаток КАК Нехватка
|ИЗ
| РегистрНакопления.РазмещениеЖивотных.Остатки(
| &МоментВремени,
| Животное = &Животное
| И Клетка = &Клетка) КАК
РазмещениеЖивотныхОстатки";
внести код которых учитывающий только отрицательные остатки в момент
времени включая момент проведения документа:
| РазмещениеЖивотныхОстатки.Животное,
| РазмещениеЖивотныхОстатки.Клетка,
| -РазмещениеЖивотныхОстатки.КоличествоОстаток КАК Нехватка
|ИЗ
| РегистрНакопления.РазмещениеЖивотных.Остатки(
| &МоментВремени,
| Животное = &Животное
| И Клетка = &Клетка) КАК РазмещениеЖивотныхОстатки
|ГДЕ
| РазмещениеЖивотныхОстатки.КоличествоОстаток < 0";
> Шаг 3. Помощь миру Вы уже достаточно опытные специалисты, поэтому нужно поделиться информацией с миром. Мы предлагаем Вам на выбор три варианта третьего шага:
> 1. Провести мини-семинар (длительностью, например, 20-30 минут) на тему «Основные фишки платформы 8.2» для своих клиентов/коллег, или любую другую тему, касающуюся платформы 8.2. Нам необходимо будет предоставить фотографии с этого мероприятия по адресу mg@spec8.ru.
> 2. Помочь разобраться со сложным вопросом на каком-либо форуме по 1С. При этом нужно детально подойти к решению проблемы. Нам нужно будет предоставить ссылку на обсуждение.
> 3. Написать небольшую статью на любую интересную Вам тему по платформе “1С:Предприятие 8.2”. Статью нужно будет опубликовать на сайте с соответствующей тематикой, например, http://nashe1c.ru, http://infostart.ru. Конечно прямой перевод наших видео-материалов в текст с картинками мы не одобряем. Правильным было бы написать о том механизме, который у вас наиболее “срезонировал” во время обучения. Причем написать со своей точки зрения.
По материалам базового курса был произведен мини-семинар среди сотрудников нашей организации на тему “Новые возможности по решению задач оперативного и бухгалтерского учета в 1С Предприятии 8.2”. Ссылка на фотографии с семинара отправлена по адресу mg@spec8.ru 08 апреля 2015 г.
Андрей, благодарим Вас за развернутый отзыв!
Финальное задание принято, поздравляем, с успешным окончанием базового курса!