Базовый курс. Финальное задание 13-го потока
Объявляем начало финала 13-го потока базового курса по программированию.
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
Добрый день!
Формат обучения очень понравился.
В целом курсы очень познавательный и емкий.
Ошибки в конфигурации:
Документ Поступление:
Модуль формы, процедура ПриСозданииНаСервере – добавить условие «Если Объект.Ссылка.Пустая() Тогда». ИсточникПоступления – установить проверку заполнения.
Регистр ВыбытияЖивотных – изменить с Остатки на Обороты.
Документ Выбытие:
Направление – установить проверку заполнения.Модуль объекта – процедура ОбработкаПроведения. В запросе на получение остатков по регистру при присоединении табличной части “Животные” нужно добавить условие «ВыбытиеЖивотныхЖивотные.Ссылка = &Ссылка». В начале процедуры записывать движения только по регистру Движения.РазмещениеЖивотных.Записать(). Модуль формы, процедуру «ПриОткрытии» переименовать в «ПриСозданииНаСервере» с директивой «&НаСервере».
Документ Перемещение:
При проведении добавить в сообщение об ошибке привязку к строке документа.
Документ Инвентаризация:
Убрать проверку заполнения КоличествоФакт, для возможности указать нулевое количество по факту. Сделать принудительную запись документа и получение остатков в запросе на дату документа.
Третий этап: http://forum-1c.ru/index.php?topic=22896.new#new
Здравствуйте, Анатолий!
Финальное задание принято. Поздравляем с успешным окончанием базового курса по программированию!
Спасибо за оперативность. Первый мой отчет затерялся на сайте.
Еще к шагу 3
http://forum-1c.ru/index.php?topic=19627.0
Добрый день!
Отзыв о базовом курсе. Арутюнян Вардан, г. Омск.
Работаю программистом с платформой 1С начиная с 2000 года.
Работал с 1С 7.7, есть сертификат специалиста.
С 1С8 плотно работаю с 2008 года.
В основном на практике приходиться работать с автоматизацией упр. учета, т.к. бухгалтерия и зарплата – это в основном поставил “типовую” конфигурацию и “забыл” :-) Реально на практике в конфигурациях Бухгалтерии и Зарплаты никто практически ничего не меняет, оно и так все работает, поэтому и пошел изучать базовый курс, чтобы восполнить пробелы в знаниях, плюс еще хотелось узнать побольше о режиме управляемого приложения 1С 8.2. К сожалению у нас в городе на управляемом приложении практически никто не работает, да и появился этот режим в типовых конфигурациях всего год назад.
Из курса почерпнул знания об общих модулях и режимах компиляции модулей, о работе регистров бухгалтерии и регистров расчета.
Полученные знания помогли в работе при разработке документов и отчетов в бухгалтерии и зарплате, а также при настройке видов расчета в зарплате и конечно получил знания о работе управляемого приложения.
Формат обучения очень понравился.
Свои отзывы и предложения по курсам я уже оставлял в других разделах сайта :-) Добавить хочу только то, что меня разочаровало финальное задание. На мой взгляд финал – это какая-то куча непонятного пиара, вместо программирования. Я думал будет задание, что-нибудь из каждого раздела автоматизации по кусочку и написать мини конфигурацию учета, а так даже помериться … нечем :-)
В целом курсы очень понравились. Всем кто их создавал большой респект!!! Очень ждем курсы по Управлению торговлей и Бухгалтерии Предприятия!!!
Арутюнян Вардан, г. Омск.
Отчет по решению практической задачи:
Ошибки в конфигурации:
1) Регистр ВыбытияЖивотных – изменить с Остатки на Обороты и пересчитать итоги.
2) Документ Поступление:
2.1) Реквизит ИсточникПоступления – установить флаг проверки заполнения.
2.2) Стандартные реквизиты – Дата – убрать значение заполнения 1980г.
2.3) Модуль формы, процедура ПриСозданииНаСервере – добавить условие «Если Объект.Ссылка.Пустая() Тогда».
Источник поступления не может быть пустым. Животные из ниоткуда не приходят :-) Получать значение константы при открытии нужно только при создании нового документа, а не каждый раз при открытии формы. Принудительная установка даты документа на 1980 – это ошибка.
3) Документ Выбытие:
3.1) Реквизит Направление – установить флаг проверки заполнения. Животные из ниоткуда не приходят :-)
3.2) Модуль объекта – процедура ОбработкаПроведения. В запросе на получение остатков по регистру при присоединении т.ч. Животные нужно добавить условие «ВыбытиеЖивотныхЖивотные.Ссылка = &Ссылка», иначе берем все т.ч. со всех документов в системе :-)
3.3) Остатки нужно получать на границу, а не просто на момент времени документа. Изменить установку параметра запроса на: «Запрос.УстановитьПараметр(«МоментВремени», Новый Граница(МоментВремени(), ВидГраницы.Включая));», иначе получаем остатки без учета движений самого документа.
3.4) В начале процедуры записывать движения только по регистру Движения.РазмещениеЖивотных.Записать(), а не просто Движения.Записать(), чтобы не записывать все регистры, а только нужные.
3.5) При выводе сообщения о нехватке остатка переделать «ВыборкаДетальныеЗаписи.НомерСтроки» на «ВыборкаДетальныеЗаписи.НомерСтроки – 1″ и использовать поле Количество, а не Животное, для установки курсора при выводе ошибки.
3.6) Модуль объекта, процедура «ОбработкаЗаполнения» убрать код – «ДанныеЗаполнения = Новый Структура; ДанныеЗаполнения.Вставить(«Дата», ’19800101′);» Дата на 1980 – это ошибка.
3.7) Модуль формы, процедуру «ПриОткрытии» переименовать в «ПриСозданииНаСервере» с директивой компиляции «&НаСервере», иначе не будет работать в тонком клиенте.
4) Документ Перемещение:
4.1) Модуль объекта, процедура ОбработкаПроведения – добавить в запрос условие «ГДЕ РазмещениеЖивотныхОстатки.КоличествоОстаток < 0", иначе получаются и положительные остатки регистра и выводятся в ошибочные сообщения. 4.2) При проведении добавить в сообщение об ошибке и привязку к строке документа и полю Количество. 5) Документ Инвентаризация: 5.1) Убрать флаг проверки заполнения из реквизитов Количество и КоличествоФакт, иначе невозможно будет указать нулевое количество на остатке или по факту. 5.2) Сделать принудительную запись документа (можно и с диалогом вопроса) и получение остатков в запросе на момент времени документа. 5.3) В запросе сделать заполнение колонки КоличествоФакт = Количество, для удобства работы с документом. 6) Отчет РазмещениеЖивотных – В СКД добавить секунду к периоду, для правильного получения остатков на заданную дату.
Здравствуйте, Вардан!
Благодарим за отзыв по курсу.
Практическое задание принято, ждем от вас шага №3.
Добрый день. Выполнение задания для финализации.
Обратная связь
До данного обучения с платформой 8.х был знаком только «по картинкам». Работаю с платформой 7.7. Поэтому весь материал для меня был новым.
Поставленная задача была достигнута: за вполне короткие сроки получил достаточно знаний, что бы выполнять некоторые задачи, что бы через встроенную справочную систему получить требуемую информацию.
О плюсах такой формы обучения подробно расписано на сайте spec8.ru :)
Нет затрат на дорогу, индивидуальный график обучения, возможность повторить материал.
Но есть пожелания по самому материалу:
1. По ходу подачи материала есть моменты, когда используются приемы, которые будут рассмотрены в продвинутом курсе. Особенно это не понятно смотрится, в решении домашнего задания. Считаю, если это такой вопрос, без которого нельзя решить простые задачи базового курса, то его нужно подробно рассматривать, а не ссылаться на следующий курс.
2. При выполнении некоторых домашних заданий, приходилось «изобретать велосипед». В предварительных уроках информации было не достаточно, зато буквально в следующих за ДЗ уроках данный вопрос раскрывался. Мне кажется, что домашние задания должны быть подобраны так (или предваряющие их уроки), что бы изложенного материала было достаточно. Так же ваши решения ДЗ должны строиться на уже изложенном материале, если они подаются, как эталонные. Если они подаются так же, как и новый материал уроков, то логично, что должен быть вариант на уже изложенном материале, а потом на новом.
3. Так же мне кажется, что вопросам работы с запросам нужно было больше уделить внимания, и давать информацию немного раньше. Их использование уже требовалось к выполнению первого-второгро ДЗ блока, но к тому моменту был обзор работы только с объектной моделью (хотя в ваших решениях используются запросы). А работа с запросами как-то смещена к концу блока.
4. Информация в четвертом блоке лично мне шла тяжело: сначала много теоретических вопросов (рисунки и схемы), и почти никакой практической информации. Зато потом сплошные запросы и их обработка, но почти нет объяснений, почему именно эта информация является результатом запроса. Я разобрался с происходящим только к последнему ДЗ. Мне кажется, что если бы поставленную задачу рассказывать последовательно с ее решением было бы лучше для усваивания. Сразу берем расчет прогулов — показываем расчет периодов по плану и по факту. Потом расчет по окладу — показываем получение информации и расчет сумм. К моменту расчета премий, уже были бы суммы для базы, не нужно создавать кучу записей для примера. И тут бы параллельно рассказывать (и показывать на примере), что такое период действия, регистрации, базы. Так же мне не хватило информации по результатам запроса, использовал объектную модель. Только в конце сообразил, от куда берутся конкретные значения фильтров для получения периодов и сумм баз.
Где-то у вас на сайте читал, что информация уроков выверяется, проходит через тестовую группу экспертов. Попробуйте создать еще группу «неэкспертов» (правда придется создавать ее каждый раз заново, так как после первого прохода их уровень уже подрастет :) ). И проработать весь материал с новичками, посмотреть на их реакцию. По времени и трудозатратам, видимо, это будет куда сложнее, но может прилично увеличить качество.
В целом процесс обучения и подача материала понравились. Курс для меня оказался очень удобным. Спасибо за его создание.
Тестирование конфигурации «Зоопарк 1.0»
1. Документ «Поступление». Модуль формы «ФормаДокумента».
В предопределенной процедуре «ПриСозданииНаСервере()» каждый раз устанавливается значение реквизита документа «ИсточникПоступления».
Если документ уже существует, то при его открытии затирается предыдущее значение.
Для исправления ошибки необходимо устанавливать значение реквизита только если он не заполнен.
2. Документ «ВыбытиеЖивотных». Модуль формы «ФормаДокумента».
В предопределенной процедуре «ПриОткрытии()» выполняется обращение к константе.
При использовании тонкого клиента обращение к данным ИБ должны выполняться только из серверных процедур/функций.
Для исправления ошибки необходимо создать серверную функцию, возвращающую значение константы, и вызывать ее, если документ еще не имеет ссылки.
3. Документ «ВыбытиеЖивотных». Модуль документа.
При проведении выполняется запрос на проверку отрицательных значений. Данный запрос строится на момент времени документа, не включая движения самого документа.
Если по текущему документу сформируются движения, которые значения регистра выводят «в минус», то этого мы не увидим.
Для исправления ошибки необходимо в качестве параметра запроса передавать границу на момент времени документа, включая саму границу.
4. Документ «ВыбытиеЖивотных». Модуль документа.
При проведении выполняется запрос на проверку отрицательных значений. Данный запрос делает выборку по табличным частям документа для определения номера строки, но не установлено условие по текущему документу.
Если в результате запроса будет нехватка, то номер строки определится не корректно — минимальный номер строки из всех документов, в которых встречается данная связка животное/клетка.
Для исправления ошибки необходимо добавить условие, выборку выполнять только по текущему документу.
5. Документ «ВыбытиеЖивотных». Модуль документа.
При проведении выполняется запрос на проверку отрицательных значений и вывод сообщений об ошибке. Сообщение привязывается к строке, но используется номер строки (начинается с единицы), а необходимо использовать индекс (начинается с нуля).
Если слишком большое количество в последней строке, то привязки сообщения нет, если в любой другой, то сообщение привязывается к следующей под ошибочной строке.
Для исправления ошибки необходимо номер строки уменьшать на единицу.
6. Документ «ПеремещениеЖивотных». Модуль документа.
При проведении выполняется запрос на проверку значений и вывод сообщений об ошибке. Но знак сообщения не учитывается, и сообщение выводится если по исходному складу есть остаток.
Даже если по исходному складу есть большое количество (допустим 10), а перемещается лишь часть (допустим 3), то будет выведено сообщение об ошибке и документ не проведен.
Для исправления ошибки необходимо в запрос отбирать только отрицательные значения.
Ошибки указания настроек конфигурации:
1. Регистр «ВыбытияЖивотных» используется только для вывода отчета — количество отгруженных животных за период. Количество по регистру не увеличивается. По данному регистру учитываются остатки, которые нигде не используются и не закрываются, что ведет к необоснованному увеличению размера ИБ. Для исправления ошибки необходимо изменить вид регистра с «Остатки» на «Обороты». Так же необходимо выполнить пересчет итогов по регистру, для корректного формирования результатов запросов.
2. При создании документа «ВыбытиеЖивотных» его дата устанавливается в «’19800101’», а при вводе на основании «Инвентаризация» дата не изменяется. Такое поведение не описано, логично, что в обоих случаях значение даты должно совпадать (и быть текущим числом). Так как документ может проводится оперативно, то логичнее было бы новые документы создавать текущим числом, как по умолчанию.
3. В документе «Поступление» по умолчанию дата устанавливается на первое января 1980 года. Так как документ может проводится оперативно, то логичнее было бы новые документы создавать текущим числом, как по умолчанию.
4. В отчете «РазмещениеЖивотных» отчет строится на начало указанного периода с точностью до секунды. Логичнее строить отчет на конец периода, и в качестве периода указывать только день. Для этого в СКД данного отчета для параметра «Период» в колонке «Выражение» использовать функцию «ДобавитьКДате()». Если строить отчет с точностью до дня, то так же использовать функцию «КонецПериода()» и для типа «Дата» указать состав только даты без времени.
«Помощь миру»
Уже шесть лет несу “Помощь миру” на форуме, который посвящен 1С. Если посмотреть списки пользователей, то видно, что по активности вхожу в десятку, по репутации около 20. И если раньше участвовал только в ветках 7.7, то теперь еще и 8.х.
Аккаунт: http://www.1c-pro.ru/user/2310-warder/
Например, тема с моим участием: http://www.1c-pro.ru/topic47250.html
Личные данные:
Гавриленко Сергей Петрович, программист отдела разработки 1С приложений, РБ, г. Минск.
Добрый день, Сергей!
Благодарим за отзыв, пожелания записали :)
Практическая часть принята.
>Уже шесть лет несу «Помощь миру» на форуме
Отлично! Поздравляем с успешным окончанием курса!
Здравствуйте!
Трофимов Петр Александрович, программист 1С, г.Киев.
ШАГ 1
Мне очень понравился курс.Все 4 блока изложены понятным языком и главное есть много интересных тем, которые не рассматриваются в книгах. Кстати заметил, что если варьировать обучение с книгами, то эффект возрастает в разы. Формат лучше, чем очный,так как нет жесткой привязки к месту и времени и можно работать в удобном для себя графике. Также стоит отметить наличие эталонных решений и возможность повторного просмотра недопонятых тем в видео. Курсы хорошо организуют, так как привыкаешь работать по графику, всем тем, кто самостоятельно разбирался по книгам,разницу понимает. Изучение сугубо по книгам дает намного меньший эффект – нет контроля знаний, не хватает организации, многие моменты ускользают, а начинаешь понимать, что чего-то недопонял, только при решении задач.Но хочу отметить несколько небольших недостатков: 1)есть те темы, которые не мешало бы добавить в базовый курс(в запросы – временные таблицы, развернутые остатки по дт/кт в бухгалтерском блоке; перерасчеты в блок расчета з/п), а более сложжные темы перенести в продвинутый курс.2) Для блоков базового курса есть выгрузки ИБ, но многих примеров видео нет в выгрузках ИБ. 3) Версия выгрузки ИБ эталонных решений некоторых заданий по редакции была старее, чем в видео. А в целом отличные курсы!
Шаг 2
1.Вид Регистр ВыбытияЖивотных – “Обороты”.
2.Отчет Размещение Животных (параметр Период – Состав – дата. можно записать через выражение (Добавитькдате(КонецПериода(&Период,”День”),”Секунда”,1))
3.Документ Выбытие -добавить контроль проверки заполнения у реквизита “Направление”.
4.Документ поступление – в обработке заполнения и в свойствах стандартного реквизита дата – заполнение значением Дата 19800101.
5.Документ Выбытие – в свойствах даты – убрать флаг заполнять из данных заполнения и убрать код 19800101 из обработки заполнения.
6.Документ Выбытие – в клиентской процедуре приоткрытии обращение в тонком клиенте к Константы.ОсновноеНаправление.Получить() невозможно.
7.Документ Перемещение в обработке проведения В запросе не хватает условия РазмещениеЖивотныхОстатки.КоличествоОстаток < 0.
8.Документ Выбытие (запрос получать не на момент времени документа, а на границу включая момент времени документа).При выводе сообщения о нехватке – неправильная привязка к строке.
9.В процедуре заполнения ТЧ инвентаризации -лучше принудительно записывать новый документ и получать остатки на момент времени документа.
10.Нумерация в справочнике Животные, НаправленияВыбытия должна быть в пределах подчинения группе.
Шаг 3
http://infostart.ru/public/165456/
Здравствуйте, Петр!
Благодарим за отзыв!
Шаги 2 и 3 приняты, поздравляем с успешным окончанием курса!
Шаг 3
http://www.forum.mista.ru/topic.php?id=643214
http://forum-1c.ru/index.php?topic=18908.0
http://forum.infostart.ru/forum26/topic75877/
Поздравляем с успешным окончанием курса!
Добрый день!
Шаг 1. Обратная связь по курсу.
1.Что нового Вы узнали из Базового курса по программированию?
В своей повседневной работе я – пользователь программ “1С:Предприятие 8”. Абсолютно никаких знаний в области программирования. Поэтому для меня, без преувеличения, весь материал был новым.
2.От каких заблуждений избавились?
Заблуждений не было. Был чистый лист.
3.Если Вы работаете на практике с платформой “1С:Предприятие 8”, то каким образом Вам удалось применить новые навыки?
Для задач, возникающих у меня, как у пользователя “1С:Предприятие” создала несколько отчетов (с помощью СКД), которых нет в нашей конфигурации, но которые необходимы в работе. Помогла решить несколько вопросов нашим сотрудникам, используя полученные на курсе знания о механизмах работы платформы.
4.Если Вы пока не работаете на реальных проектах по внедрению решений на “1С:Предприятие 8”, то что оказалось неожиданным из материалов курса?
В первую очередь то, что одну и ту же задачу можно решить как минимум двумя путями – как ты и как преподаватель (оба дают верный результат, твое почти всегда :), но решение преподавателя зачастую изумляет (как сам до это не додумался?).
5.Насколько удобен оказался формат обучения в сравнении с очным обучением?
Опыта очного обучения не было.Формат данного курса оказался удобным. Курс очень полезный, информативный, и надеюсь, результативный в плане применения на практике (последнее зависит уже от обучающегося). Спасибо!
С уважением, Бороденко Елена Николаевна, менеджер ООО “Деловое программное обеспечение”, г.Воронеж.
Шаг 2. Практическое задание.
Ошибки:
1.В модуле формы документа “ВыбытиеЖивотных”, в процедуре “ПриОткрытии” идет обращение к методам КонстантаМенеджер, доступным на сервере и толстом клиенте. Для корректного обращения к данному методу необходимо вызывать его в серверной процедуре, например, “ПриСозданииНаСервере”.
2.В процедуре “ОбработкаПроведения” документа “ВыбытиеЖивотных”, так как остаток получается на момент времени не включая границу проводимого документа, для корректного проведения необходимо включить границу данного документа, используя тип данных “Граница”.
3.Неверная привязка сообщения об ошибке в форме документа “ВыбытиеЖивотных”, в связи с обращением по индексу, номер строки, начинается всегда с 1, а нумерация по индексу с 0. Необходимо при таком обращении отнять 1 от номера строки.
4.Регистр “ВыбытияЖивотных” должен быть оборотным регистром.
5.При создании документов “ВыбытиеЖивотных” и “Поступление” на основании документа “Инвентаризация” необходимо заполнять дату документа датой документа-основания.
6.В отчете “РазмещениеЖивотных” не учитывается последняя секунда периода, к параметру дата, на которую получаются остатки необходимо добавить одну секунду.
7.В модуле формы документа “Поступление”, процедуре “ПриСозданииНаСервере” не делалась проверка на то – создается ли новый объект или идет обращение к существующему, в результате при открытии уже существующего документа заполнялся по умолчанию «ИсточникПоступления» значением константы . Для исправления добавлена проверка “Объект.Ссылка.Пустая()”.
8.В документе “Поступление” в стандартном реквизите “Дата”, указано значение заполнения датой “01.01.1980 0:00:00”, при этом указано, что проверка заполнения “выдавать ошибку”, на мой взгляд, необходимо очистить значение заполнения, и установить галочку “заполнять из данных заполнения”.
9.Также чтобы корректно работал метод создания документов путем копирования необходимо создание процедуры “ПриКопировании”.
10.В документе “Инвентаризация” в реквизите “КоличествоФакт” табличной части “Животные” нет возможности указать нулевое значение, документ не записывается и выдает сообщение о незаполненности данной колонки. Как вариант, убрать проверку на заполнение данного реквизита.
Шаг 3. Помощь миру.
Это пока очень сложно для меня, вот что могу предложить
http://infostart.ru/public/165488/
Здравствуйте, Елена!
>Абсолютно никаких знаний в области программирования. Поэтому для меня, без преувеличения, весь материал был новым.
В таком случае если вы уложились в график курса – снимаю шляпу. Благодарим за отзыв!
Практическое задание принимаю.
>… вот что могу предложить
Да, подойдет :)
Поздравляем с успешным окончанием базового курса!
Все таки забыл вписать свои данные.
SergVP
Прокофьев Сергей Витальевич.
Начальник ИТ отдела
Московская обл.,г. Люберцы
Добрый день.
ШАГ 1
Работал в основном с оперативным блоком. По блоку бухгалтерии и расчетному блоку работал на уровне выяснить ошибку (где галку не поставили), отчет простенький сформировать. В УПП почти все данные можно получить из Регистров Сведений и Накопления. Так и работаешь не вникая в суть. Решил все таки разобраться с устройством платформы и не пожалел. Теперь понимаю суть процессов в бухгалтерии и зарплате.
Машину чинить легче если понимаешь что для чего предназначено, а не то как заменить и прикрутить.
Да и по работе с остальными объектами много новых фишичек узнал. Очень рад что с помощью курса удалось разобраться в контекстах компеляции НаСервере, НаКлиенте.
Не понимал и думал что очень заморочено в Управляемом интерфейсе. Оказалось все просто и очень удобно. Формы создавать очень легко. А иногда даже и не обязательно. Очень удобно.
Пока изучал и решал задачи по бухгалтерии стал их понимать. На каком они языке разговаривают и что хотят.(правда их самое большое желание я давно знаю – нажал одну кнопку и все посчиталось, проверилось и отправилось в налоговую) .
Так как изучал курс в сжатые сроки, то особо применить не удалось. За исключением некоторых фишек.(типа в разорванном тексте запроса использовать СтрЗаменить()).
Курс помог активнее использовать Синтаксис-помощник.
Формат обучения очень удобен. Сам планируешь время обучения. Формат изложения мне тоже очень понравился. Все как в жизни. С ошибками и их исправлением. Тесное сотрудничество теории с практикой тоже очень помогает.
В общем от курса у меня только положительные впечатления.
ШАГ2
1.Документ ВыбытиеЖивотных модуль формы Процедура ПриОткрытии обращение к константе из клиента. Заполнение реквизитов документа лучше делать из ОбработкиЗаполнения модуля объекта. В ветку создания не по документу Инвентаризация в структуру ДанныеЗаполнения вставим значение заполнения ДанныеЗаполнения.Вставить(“Направление”,Константы.ОсновноеНаправление.Получить());
И поставим флаг Заполнять из данных заполнения у Реквизита Направление.
Удаляем код из процедуры ПриОткрытии
В ОбработкеПроведения ВыбытиеЖивотных если использовать ДобавитьРасход() вместо Добавить() можно сократить следующую строку.
2.При проведении документа ВыбытиеЖивотных После создания движений по регистру РазмещениеЖивотных используется метод Движения.Записать() , который будет записывать все регистры, а это нам не нужно. Используем метод
Движения. РазмещениеЖивотных.Записать(), и запишем только созданный набор.
3.При установке параметров для параметра МоментВремени нужно использовать Границу со свойством Включая, а не просто МоментВремени().
4.При сообщении об ошибке в реквизите Поле нужно использовать не просто НомерСтроки , а номер строки минус 1.
5.РегистрНакопления ВыбытиеЖивотных вид регистра – остатки, но уменьшаться этот остаток не будет. Соответственно его нужно переделать в Обороты. Соответственно подредактировать отчет Анализ Выбытия и пересчитать Итоги.
6.В документе Поступление ИсточникПоступления заполняется в процедуре ПриСозданииНаСервере(), что означает что он будет проставлятся при каждом открытии формы документа. Конечно же код отсюда удаляем и помещаем в процедуру ОбработкаЗаполнения() так же как и в документе ВыбытиеЖивотных создадим структуру ДанныеЗаполнения и вставим в нее реквизит ИсточникПоступления полученный из константы. Так же у этого реквизита установим флаг Заполнять из данных заполнения.
В Обработке проведения Поступление в движении вместо метода Добавить() лучше использовать метод ДобавитьПриход()
В документе Перемещение в обработке проведения так же можно использовать ДобавитьПриход() и ДобавитьРасход() вместо Добавить()
7.В отчете РазмещениеЖивотных необходимо привести дату к концу дня используя второй Параметр и оператор КонецПериода(,)
ШАГ 3
http://infostart.ru/public/165380/
Здравствуйте, SergVP.
>В общем от курса у меня только положительные впечатления.
Отлично! Благодарим за отзыв.
Шаги №2 и 3 принимаю.
Поздравляем с успешным окончанием базового курса по программированию!
Овчинникова Ирина Олеговна, инженер-программист, г.Железногорск
Большое спасибо за курс, мне очень понравилось. По работе на данный момент 1С является не основной работой, но занимает очень много рабочего времени, в частности из-за незнания основ системы. После прохождения курса стало гораздо легче ориентироваться в коде типовой конфигурации, стало более понятно общее устройство системы. Очень помог разбор моментов с концом дня – оказалось, что некоторые отчеты, которые приходилось делать, работали некорректно, так как я не учитывала проблему последней секунды. С этой проблемой, кстати, у меня недостаточная ясность: в ходе курса упоминалось, что в некоторых случаях система сама приводит дату к концу дня, в некоторых нет. В каких случаях это происходит, не запомнилось, а искать эти моменты по курсу достаточно тяжело. Возможно, был бы полезен отдельный урок, которой бы посвящен этому вопросу. Формат дистанционного обучения оказался достаточно удобен. На одних очных курсах я была, но уровень подачи материала там был очень низкий, к сожалению. По времени для меня оказалось достаточно тяжело, возможно, я бы предпочла немного более растянутый курс. Некоторые моменты показались очень сложными (я вообще думала, что курс будет попроще), приходилось их прослушивать по несколько раз (например, заполнение документа НачислениеЗаработнойПлаты).
_______
1. Отчет РазмещениеЖивотных некорректно выводит остатки на конец дня, если есть документы, проведенные концом дня на дату построения отчета. Для исправления этой ошибки для параметра Период заполнить значение поля Выражение КонецПериода(&Период,”День”), а в типе Дата поменять состав на Дату
2. В документе Перемещение животных некорректно проверяются остатки. В тексте запроса не хватает условия на то, что остаток после проведения документа стал отрицательным. В текст запроса надо дописать строчку «ГДЕ РазмещениеЖивотныхОстатки.КоличествоОстаток < 0»
3. Выбытие животных также некорректно проверяет остатки, так как движения самого документа не попадают в запрос. Нужно изменить значение параметра МоментВремени: Запрос.УстановитьПараметр("МоментВремени", Новый Граница(МоментВремени(), ВидГраницы.Включая));
4. В документе Выбытие сообщение об ошибке выводится неправильно: Из ВыборкаДетальныеЗаписи.НомерСтроки нужно вычесть 1 при привязке сообщения к полю
5. При создании документа Выбытие в тонком клиенте возникает ошибка: Переменная не определена (Константы), так как в процедуре ПриОткрытии реквизиту Направление присваивается значение Константы, а процедура выполняется на клиенте, где доступа к константам нет. Необходимо сделать функцию, выполняющуюся на сервере, которая будет возвращать значение Константы.
6. Документ Инвентаризация содержит ошибку: по кнопке Заполнить заполняется неверное количество животных, так как в запросе нет условия на дату заполнения и остатки выбираются на текущую дату. Нужно добавить в текст запроса условия на дату и установить параметр по дате документа
7. В документе Инвентаризация невозможно указать КоличествоФакт 0, так как у реквизита КоличествоФакт в свойство ПроверкаЗаполнения установлено в ВыдаватьОшибку
8. Документ Поступления создается с датой 01.01.1980 0:00:00, так как в свойствах стандартного реквизита Дата такое значение установлено в свойство ЗначениеЗаполнения
9. Документ Выбытие также создается с датой 01.01.1980, так такой код прописан в процедуре ОбработкаЗаполнения модуля объекта
10. Регистр ВыбытиеЖивотных лучше сделать оборотным
Ирина, благодарим за развернутый отзыв!
Практическое задание принято, жду от вас отчета по шагу №3.
Шаг 1.
Курсы понравились. Узнала много нового по всем разделам.
Формат обучения очень удобный. Когда-то давно училась на очных курсах. Так они для меня прошли по принципу «Кто не успел, тот опоздал», т.е. если что-то не успел повторить за преподавателем, то отстал от всех.
Кузьмина Марина г.Новосибирск
Шаг 2.
1. В документе «Поступление животных» у стандартного реквизита «Дата» убрать значение заполнения 01.01.1980
2. При открытии уже созданного документа «Поступление животных» затирается значение источника поступления документа значением константы. Поэтому в модуле формы документа в процедуре «ПриСозданииНаСервере» нужна проверка – открывается новый документ или уже созданный.
3. При создании документа «Выбытие животных» в тонком клиенте выдается ошибка «…. Переменная не определена (Константы)». Константы не доступны в тонком клиенте. Нужно в форме документа из клиентской процедуры «ПриОткрытии» сделать вызов серверной процедуры и в ней обратиться к константе «Основное направление».
Процедура ПриОткрытии(Отказ)
ПриОткрытииСервер(Отказ);
КонецПроцедуры
&НаСервере
Процедура ПриОткрытииСервер(Отказ)
Если Объект.Ссылка.Пустая() Тогда
Объект.Направление = Константы.ОсновноеНаправление.Получить();
КонецЕсли;
КонецПроцедуры
4. В документе «Выбытие животных» из процедуры «Обработка заполнения» убрать данные заполнения ДанныеЗаполнения.Вставить(“Дата”, ‘19800101’);
5. В процедуре проведения дкумента «Выбытие животных» небходимо параметру «Момент времени» присвоить значение границы:
Запрос.УстановитьПараметр("МоментВремени", Граница);
и убрать в запросе «минус» перед «РазмещениеЖивотныхОстатки.КоличествоОстаток КАК Нехватка,»
6. При выдаче сообщения пользователю в процедуре проведения документа «Выбытие животных» нужно указывать номер строки с учетом того, что нумерация строк начинается с 0:
Сообщение.Поле = “Животные[“+(ВыборкаДетальныеЗаписи.НомерСтроки-1)+”].Животное”;
7. В документе «Перемещение животных» неверный запрос. Нужно убрать «-» в строке
«-РазмещениеЖивотныхОстатки.КоличествоОстаток КАК Нехватка»:
"ВЫБРАТЬ
| РазмещениеЖивотныхОстатки.Животное,
| РазмещениеЖивотныхОстатки.Клетка,
| РазмещениеЖивотныхОстатки.КоличествоОстаток КАК Нехватка
|ИЗ
| РегистрНакопления.РазмещениеЖивотных.Остатки(
| &МоментВремени,
| Животное = &Животное
| И Клетка = &Клетка) КАК РазмещениеЖивотныхОстатки
|ГДЕ
| РазмещениеЖивотныхОстатки.КоличествоОстаток < 0";
8. В документе инвентаризация идет заполнение на текущую дату, а не на дату документа. Нужно в запросе использовать параметр ПЕРИОД виртуальной таблицы «РазмещениеЖивотныхОстатки» и установить его в конец дня или равным дате документа.
9. В отчете «Размещение животных» необходимо привести Период на конец дня.
10. Регистр «ВыбытиеЖивотных» должен иметь тип «Обороты»
Шаг 3
http://www.1c01.ru/forum/viewtopic.php?p=7986#7986
> …«Кто не успел, тот опоздал»
Да, это большей минус. Благодарим за отзыв!
Практическое задание и шаг№3 приняты, поздравляем с успешным завершением курса!
Добрый день!
1 Обратная связь.
Вот и подошел к концу курс.
Новое, в общем, было все. Несмотря на 10 летний опыт программирования в 7.7,
был уверен что 8.2 тоже будет легко. Как я ошибался. :)
Месяц назад перешел на другую работу. Основной проект это Консолидация ПРОФ.
Что сказать, если бы не занятия на курсе, честно, не потянул бы. НО сейчас,
еще не мастер, но и не плыву. :) Дорабатываю, новые документы, отчеты ..
Я понял, что такой формат для меня самый удобный. Был на очных курсах, мало
что помню, все было быстро и не понятно. :)
Шутов Андрей Васильевич, г. Санкт-Петербург. Прграммист 1С, ООО “ПЛ-Софт”.
2 Практическое задание.
Документ инвентаризация
Для формы в свойствах необходимо снять режим
Проверять заполнение автоматически.
Так как Количество факт может быть нулевым.
Документ ВыбытиеЖивотных стандартное заполнение
ДанныеЗаполнения.Вставить(“Дата”, ‘19800101’);
Заменяем на текущую дату
ДанныеЗаполнения.Вставить(“Дата”, ТекущаяДата());
Регистр накопления ВыбытиеЖивотных целесообразнее сделать оборотным
Причина – движения делает только один документ, и только по расходу.
Такой регистр никогда не будет выведен в 0 по остаткам.
Документ выбытие животных модуль формы в процедуре ПриОткрытии() константы
не доступны в тонком клиенте. Нужен серверный вызов
Процедура ПриОткрытии(Отказ)
ЗаполнитьНаправлениеПоУмолчанию();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНапрвлениеПоУмолчанию()
Если Объект.Ссылка.Пустая() Тогда
Объект.Направление = Константы.ОсновноеНаправление.Получить();
КонецЕсли;
КонецПроцедуры
Ошибка позиционирования при выводе сообщения В модуле объекта документа
ВыбытиеЖивотных
Номер строки начинается с 0
"Животные["+(ВыборкаДетальныеЗаписи.НомерСтроки-1)+"].Животное";
Документ Инвентаризация после нажатия на кнопку Заполнить не видит
изменений.
Необходимо выставить Модифицированность = Истина
в обработчик команды заполнить.
Документ Выбытие животных при создании из Инвентаризации не имеет признака
модифицированности
Реквизит «Количество» регистров накопления имеет тип число 15(0) меняем на
принятое по умолчанию для чисел 15(3)
У документов и табличных частях реквизит количество также имеет значение
15(0), меняем. Хотя дробная часть в количестве при учете животных не имеет
практического смысла. Не уверен ошибка это, или заданный функционал.
Документы Поступление, ВыбытиеЖивотных и ПеремещениеЖивотных проводятся
оперативно, но последовательности документов не предусмотрено.
В документе ВыбытиеЖивотных При получении остатков нужно использовать
«Граница = Новый Граница(МоментВремени(), ВидГраницы.Включая)» вместо
«МоментВремени()»
Чувствую что есть еще. :)
Будем дальше работать и на достигнутом нет резона останавливаться.
Продвинутый курс уже в пути.
3 Помощь миру.
Я на форуме по именем Андрей
После финала 12 потока я проделал третий этап.
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=602181#602181
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=600304
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=602509#602509
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=602514#602514
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=602544#602544
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=602549#602549
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=602547#602547
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=602526
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=602947#602947
Здравствуйте, Андрей!
Благодарим за отзыв по курсу.
>еще не мастер, но и не плыву. :)
Отлично! Не останавливайтесь на достигнутом.
Шаги №2 и3 принимаю.
Поздравляем с успешным окончанием базового курса по программированию! Ждем на продвинутом :)
Шаг 1.
Дереза Дмитрий, г.Краснодар
Работаю два года в фирме франчайзи 1С, но мечтаю овладеть новым направлением – а именно программированием. Без ваших курсов 100% это так бы и осталось мечтой, быстрый старт решил пропустить, т.к. начальные знания были, но если бы не начальство, решившее что без Вашего курса мне сложнее перейти в новое направление, вряд ли бы я отважился. С точки зрения новичка (в программировании на языке 1С) мне все понравилось: подача материала, ДЗ, очень много пользы дает разбор ответов. Также понравилось что описано и рассказано почти все в структуре (по коду понятно, что будет подробнее в продвинутом рассказано) и я уверен, что ближайшее время я часто буду восстанавливать знания с помощью уроков. Но сложности вызвало описание уроков, сложно иногда найти то, что хочешь. Также, я считаю, что не правильно разграничено время, т.к. я ДЗ делал именно по календарю, иногда я тратил время по 4-5 часов в день, т.к. не успевал, а иногда ничего не делал неделю.
Но При всех минусах, плюсов в 1000 раз больше. Продвинутый курс уже приобрел, но это для будущего, как только мне перестанет хватать знаний Базового курса. Теперь буду разбирать бонусы и т.д. Спасибо Вам
Шаг 2.
1. Первое, что бросается в глаза – отсутствие пользователей в базе. Как минимум это грозит наличием возможности непосредственного удаления объектов в базе со всеми вытекающими;
2. Ошибка в модуле формы Документ.ВыбытиеЖивотных: {Документ.ВыбытиеЖивотных.Форма.ФормаДокумента.Форма(7,24)}: Переменная не определена (Константы)Объект.Направление = <>Константы.ОсновноеНаправление.Получить(); (Проверка: Тонкий клиент)
Лечим переносом в процедуру на Сервере.
3. Регистр РазмещениеЖивотных целесообразно использовать с видом Обороты, а не Остатки.
4. Отчет АнализВыбытийЖивотных – не выдавал никакого результата после изменения остатков на обороты регистре РазмещениеЖивотных, т.к. данные брались из ВыбытияЖивотныхОбороты, а надо было из ВыбытияЖивотных.
5. Документ ПеремещениеЖивотных, при нехватке животных выдает отрицательное значение «Недостаточно животного Лама в Клетка средняя 40 м2 в количестве -1», убран минус в запросе «РазмещениеЖивотныхОстатки.КоличествоОстаток КАК Нехватка»
6. Документ ВыбытиеЖивотных – не выдает остатков, изменения в запросе: Во вложенной таблице добавлен «ДанныеДокумента.Количество», Нехватка считается как РазмещениеЖивотныхОстатки.КоличествоОстаток – ДанныеДокумента.Количество, Также условие РазмещениеЖивотныхОстатки.КоличествоОстаток – ДанныеДокумента.Количество >0
7. Документ ВыбытиеЖивотных, при нехватке животных выдает отрицательное значение «Недостаточно животного Лама в количестве -1» убран минус в запросе РазмещениеЖивотныхОстатки.КоличествоОстаток
8. Документ «ВыбытиеЖивотных» ДанныеЗаполнения.Вставить (“Дата”, ‘19800101’); Очищаем значение;
9. Документ «Поступление», нет проверки на документ новый или уже записан
10. Документ «Инвентаризация», модуль формы: в запросе добавлен параметры таблицы &Дата
11. Документ «ВыбытиеЖивотных» Вывод сообщения идет привязка к строке: Сообщение.Поле = “Животные[“+ВыборкаДетальныеЗаписи.НомерСтроки+”].Животное”; индекс уменьшить на 1ок
12. Еще я бы в Табличных частях на формах документов, ВыбытиеЖивотных и ПеремещениеЖивотных сделал бы общую подсчет суммы по количеству выбранных животных.
13. В модулях формы документов Поступление и Выбытие, можно было использовать одинаковую процедуру, при создании на сервере.
14. Документ «ВыбытиеЖивотных» при установке параметра необходимо использовать границу с видом «включая»
Шаг 3.
Какого-то общего семинара для большого количества людей я не проводил, статью на infostart.ru писать не стал по причине того, что являюсь новичком в программировании в среде 1С, других печатных изданий не имею, думаю, что, рановато. Считаю, что писать статьи по методологии программирования в среде 1С – это очень ответственная задача, к ней надо относиться очень внимательно, со всей ответственностью в знаниях предметной области либо делится своими наработками, коих пока не имею. Но провел несколько мини семинаров – помощь начинающим с уровнем знаний структуры 1С меньше меня, + начал заниматься в свободное от работы время с новым сотрудником, подготавливать его к Вашему базовому курсу, чтобы легче было его пройти(при этом тажке закрепляю свои знания повторением). Фотографии выложены:
https://dl.dropbox.com/u/27246858/DSC_0198.jpg
https://dl.dropbox.com/u/27246858/DSC_0205.JPG
Дмитрий, благодарим за отзыв по курсу!
>мечтаю овладеть новым направлением – а именно программированием.
Обязательно овладеете!
Практическую часть принимаю.
> + начал заниматься в свободное от работы время с новым сотрудником..
Дмитрий, в свободное от работы время лучше отдыхать :) Шаг №3 принимаю.
Поздравляем с успешным окончанием базового курса по программированию! Успехов в дальнейшем обучении!
1.
Новое для меня: бухгалтерский учет, периодические расчеты.
От каких заблуждений избавились? – не избавился пока не от каких, вопросов стало еще больше, но уже есть представление о платформе.
Если Вы работаете на практике с платформой «1С:Предприятие 8», то, каким образом
вам удалось применить новые навыки (какие результаты были достигнуты) – были изменены некоторые участки кода в целях оптимизации и использования стандартного функционала платформы.
Насколько удобен, оказался формат обучения в сравнении с очным форматом? – достаточно удобно, но для меня слишком быстро все читается, частенько перематываю обратно.
Личные данные: Акашкин Владимир Александрович, инженер-программист, г.Москва.
2.
Документ “Поступление”
Выведем ссылку на регистр на форму документа.
В регистр нужно записывать с учетом дублей строк в табличной части документа или можно сворачивать табличную часть перед запись документа.
В модуле формы документа, процедура ПриСозданииНаСервере – нет проверки нового документа, всегда замещается реквизит из константы.
Документ “ВыбытиеЖивотных”
Выведем ссылку на регистр на форму документа.
В регистр нужно записывать с учетом дублей строк в табличной части документа или можно сворачивать табличную часть перед запись документа.
При получении остатков нужно использовать “Граница = Новый Граница(МоментВремени(), ВидГраницы.Включая)” вместо “МоментВремени()”
Не хватает в процедуре проведения “Движения.РазмещениеЖивотных.Записать()” – нужно очистить сначала движения документа.
При записи в регистр “ВыбытияЖивотных” тоже добавляются лишние записи если есть дубли строк в табличной части.
Сообщения об ошибках неправильно выводятся – место “Сообщение.Поле = “Животные[“+ВыборкаДетальныеЗаписи.НомерСтроки+”].Животное”;”
нужно “Сообщение.Поле = “Животные[“+Строка(ВыборкаДетальныеЗаписи.НомерСтроки-1)+”].Животное”;”
В модуле формы документа “Константы.ОсновноеНаправление.Получить()” – не работает в тонком клиенте, нужно использовать серверную процедуру.
Документ “Инвентаризация”
Кнопка “Заполнить” на форме документа – необходимо заполнять остатками с учетом даты документа.
Отчет “РазмещениеЖивотных”
Параметр период должен быть приведен к концу дня – КонецПериода(&Период,”День”)
3.
http://infostart.ru/public/164976/
Владимир, благодарим за отзыв по курсу!
Шаг №3 и практическое задание приняты.
Поздравляем с успешным окончанием базового курса!
Тураева Ирина, г. Москва
Шаг 1. Обратная связь по курсу
Курс очень интересный. Из курса узнала очень много, все описано довольно подробно, понятно, наглядно. Рассмотрены все области учета (управляемый учет, бухгалтерия, заработная плата), работа с запросами, отчеты на СКД. На данный момент я нахожусь в отпуске по уходу за ребенком, поэтому формат курсов просто идеален. Хочется быстрее применить полученные знания на практике. Жалею только об одном – что не знала о Вашем проекте раньше.
Шаг 2. Практическое задание
I ДОКУМЕНТ ПОСТУПЛЕНИЕ
1) Процедура ПриСозданииНаСервере() – нет проверки на документ новый или уже записан
2) Разрешено оперативное проведение документа, но при этом установлено значение заполнения у даты документа.
II ДОКУМЕНТ ВЫБЫТИЕ ЖИВОТНЫХ
3) Процедура ПриОткрытии() – обращение к константе из клиентского модуля
4) Разрешено оперативное проведение документа, но при этом установлено значение заполнения у даты документа.
5) В Процедуре ОбработкаПроведения() при установке параметра необходимо либо к МоментуВремени добавить 1 секунду, либо использовать границу с видом границы “включая”.
6) В Процедуре ОбработкаПроведения() при вывыоде сообщения о нехватке надо от номера строки отнимать 1 чтобы спозиционироваться на строке, содержащей ошибку
7) В Процедуре ОбработкаПроведения() если нет ошибок, то дважды происходит запись в регистр ВыбытияЖивотных.
III ДОКУМЕНТ ПЕРЕМЕЩЕНИЕ ЖИВОТНЫХ
8) В обработке проведения при проверке на доступный остаток пропущено условие необходимости выбирать записи, где количество меньше нуля
IV Отчет Анализ выбытия животных
9) В запросе использована виртуальная таблица регистра накопления Обороты, вместо физической таблицы регистра
V РЕГИСТРЫ НАКОПЛЕНИЯ
10) Вид регистра ВыбытияЖивотных должен быть Обороты, а не остатки
Шаг 3. Помощь миру
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=604641#604641
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=604643#604643
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=604831
Ирина, благодарим вас за отзыв по курсу!
Шаги №2 и №3 зачтены.
Поздравляем с успешным окончанием базового курса по программированию!