Меню Рубрики

Решение сквозной задачи к экзамену "1С:Специалист" по платформе. Павел чистов Подготовка аттестации 1с специалист по платформе

Студенческая практика показывает, что к экзаменам нужно готовиться заранее. Экзамен 1С:Специалист – как раз из таких. Мы открываем запись на онлайн-курс для подготовки к аттестации.

Автор и ведущий курса – преподаватель 1С:Учебного центра №1 Павел Белоусов. Он 15 лет принимает экзамен 1С:Специалист и является одним из его разработчиков. Вряд ли кто-то сможет рассказать об экзамене больше, чем он.

Особенности курса

Основной акцент в курсе сделан на отработку методически верных приемов программирования и конфигурирования, владение которыми проверяется на экзамене. Кроме того:

  • курс включает две формы передачи материалов: видеозапись и онлайн-консультация с тренером;
  • лекционная часть записывается, и доступ к видео предоставляется всем участникам онлайн-курса;
  • после каждой консультации участники получают домашнее задание для закрепления пройденного материала. Его выполнение – обязательно!
  • тренер проверяет каждую задачу и дает обратную связь всем слушателям.

По окончании курса слушатели освоят приемы конфигурирования в соответствии со «Стандартами разработки конфигураций» и смогут бесплатно аттестоваться на специалиста по платформе «1С:Предприятие 8.3».

Бонусы для участников курса

Инфостарт предусмотрел набор бонусов специально для слушателей курса:

  • На весь период обучения предоставляется доступ к каталогу Инфостарт с лимитом 20 стартмани на счету. Этот абонемент можно использовать для загрузки файлов из набора публикаций в этом спецпроекте
  • Скидочный купон 10% на любой курс, размещенный в каталоге Инфостарт.
  • Бесплатная попытка аттестации «1С:Специалист» по платформе «1С:Предприятие 8.3» (при наличии сертификата «1С:Профессионал» по платформе) в ближайшем Сертифицированном экзаменационном центре фирмы «1С».

Стоимость и время проведения

Курс пройдет с 11 марта по 3 апреля 2019 года. Он состоит из 11 онлайн-занятий по 4 часа и 6 дополнительных консультаций. Занятия проходят по расписанию: с 17.00 до 21.00 мск.

Собираетесь сдавать экзамен 1С:Специалист по платформе 1С:Предприятие 8, и хотите быстро получить ключевые кейсы по решению задач? Этот курс - то, что Вам нужно.

Никакой "воды". Теория только в тех местах, в которых это часто вызывает вопросы. Курс практический.

Более 1000 человек прошли этот курс. Статистика показывает, что после прохождения курса процент сдавших приближается к 90%, в то время как попытки сдать экзамен с первого раза без подготовки меньше 20%.

Аудитория курса (Внимание, это надо прочитать!)

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

Ведущий курса - Павел Чистов

Методист по платформе 1С: Предприятие 8.
Сертифицированный преподаватель 1С:ЦСО.
Ресурс-менеджер проектных команд.
Один из самых известных в России и СНГ специалистов по обучению программированию на платформе 1С,
создатель множества популярнейших курсов и вебинаров.

Программа курса

Курс состоит из разбора 32 задач, большая часть которых идентична аттестационным.

  • 8 задач по оперативному учету, общая длительность 7 часов 35 минут (или 10 учебных часов)
  • 8 задач по бухгалтерскому учету, общая длительность 7 часов 49 минут (или 10,5 учебных часов)
  • 9 расчетных задач, общая длительность 9 часов 42 минуты (или 13 учебных часов)
  • 7 задач по управляемым формам и бизнес-процессам, длительность 3 часа 34 минуты (5 учебных часов)

Как проходит курс

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

Для ознакомления с видео предлагаю посмотреть полностью два первых урока:

Системные требования

Видеоматериалы курса защищены от копирования - в них используется защищенный плеер, который привязывает видео к оборудованию и операционной системе. Активировать и просматривать видео можно только на компьютерах с ОС Windows. Активация может быть аннулирована из за замены оборудования или больших обновлений ОС. Воздержитесь от обновления на 31 день, которые отводятся на прохождение курса.

Около 2/3 курса записаны на платформе 8.2, это никак не сказывается на актуальности материалов, так как в прикладных задачах цвет интерфейса не играет никакой роли.

Видеоматериалы предоставляются в защищенном формате, проигрывание возможно только под ОС Windows, с видеокартой, поддерживающей оверлеи. Если вы сомневаетесь, сможет ли ваш ПК воспроизвести видеоматериалы, скачайте тестовую программу или обратитесь за помощью по адресу эл. почты .

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

Если моя публикация Вам полезна, не забудьте поставить плюсик:-)

Здесь рубрикатор по всем задачам сборника (страничка, где собраны ссылки на ветки форума по каждой задаче)
http://chistov.spb.ru/forum/16-969-1

Ну а теперь мои наработки и заметки, которые я создал в процессе подготовки.
Постараюсь по минимуму повторяться с упомянутыми выше двумя последними публикациями.

Итак, приступим:


В случае удаленной сдачи у вас должно быть в конце экзамена на рабочем столе два объекта:

1. Итоговая выгрузка информационной базы (файл dt)
2. Пояснительная записка

Ничего другого быть не должно, никаких промежуточных копий и т.д.

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

Но об этом Вам и так будет сказано в инструкции, которую дадут прочесть перед началом экзамена.
Просто лучше знать заранее)


Использование знака амперсанда в запросах.

Иногда быстрее набрать с дополнительной клавиатуры, чем переключать туда-сюда раскладку, экономится время
& = Alt+38

*************************************************************************************************
Использование МоментВремени() в запросах

В запросах к регистрам накопления, бухгалтерии в качестве параметра виртуальной таблицы (периода) необходимо использовать не дату документа, а параметр Момент который определяется в коде следующим образом:

Момент = ?(РежимПроведения = РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени());

*************************************************************************************************
При формировании движений документа по регистру в самом начале процедуры обработки проведения необходимо очищать движения текущего документа по регистру.

Код такой:

Движения.НазваниеРегистра.Записывать = Истина; Движения.НазваниеРегистра.Очистить();

Возможно, что в процессе проведения нужно будет анализировать записи по этому регистру.
Так вот, чтобы при анализе текущие записи (старые, до изменения документа) точно не попали в выборку, к приведенным двум строчкам можно добавить еще одну:

Движения.НазваниеРегистра.Записать();

Или же при анализе записей явно указывать границу, не включающую момент времени текущего документа.

Но я везде просто указывал сразу конструкцию из этих трех строчек:

Движения.НазваниеРегистра.Записывать = Истина; Движения.НазваниеРегистра.Очистить(); Движения.НазваниеРегистра.Записать();

*************************************************************************************************
Есть два способа блокировки данных, выбор между ними зависит от методики проведения - старой или новой:

1) Обычная управляемая блокировка, старая методика проведения документа (объект БлокировкаДанных)

Устанавливается в случае, если сначала идет проверка остатков, а затем списание.
В том случае, когда нам для формирования движения необходимо иметь какую-то информацию из регистра.


Пример:

В документе - количество, в регистре - количество и сумма (себестоимость)
Так вот, количество товара мы знаем из документа - сколько списываем, а себестоимость - нет.
Мы можем ее узнать только из регистра, но для того, чтобы никто не изменил регистр между моментом получения остатков и моментом записи движений, нам необходимо еще до чтения остатков заблокировать регистр.
Так вот, в этом случае и используется объект БлокировкаДанных. И при его создании правильнее указать по каким измерениям мы блокируем регистр (например в нашем случае - только по указанной в документе номенклатуре) - чтобы не было излишних блокировок и другой пользователь смог продавать другую номенклатуру.


1. Устанавливаем блокировку с помощью объекта БлокировкаДанных
2. Читаем остатки
3. Проверяем возможность списания
4. Формируем движения, к примеру списываем товар
5. После проведения документа блокировка автоматически снимается (блокировка действует в рамках транзакции проведения и снимается автоматически системой). То есть как-то специально разблокировать объект не надо.

2) Новая методика проведения документов (использование свойства БлокироватьДляИзменения = Истина)

Используется в случае, если нам для формирования движений не нужна информация из регистров, а проверить не ушли ли мы в минус при списании мы сможем, если после записи посмотрим остатки по регистру и увидим что есть отрицательные. В этом случае, мы поймем, что списали лишнее и отменим операцию списания.

Пример:
Рассмотрим операцию реализации товара.
В документе - количество, в регистре - только количество
Так вот, количество товара мы знаем из документа.
Мы формируем движения с указанным в документе количеством и записываем их. Далее читаем регистр, смотрим остатки, анализируем - есть ли отрицательные. Если есть выводим ошибку и ставим Отказ = Истина.

То есть последовательность такая:
1. Для движения по регистру устанавливаем свойство БлокироватьДляИзменения = Истина
2. Формируем движения - списываем товар
3. Записываем движения
4. Читаем регистр, смотрим, чтобы не было отрицательных остатков. Если есть - то списали лишнее, если нет - то все нормально.

Так вот, в этом случае нет необходимости указывать по каким измерениям нам надо блокировать регистр.
Мы просто устанавливаем свойство БлокироватьДляИзменения = Истина до записи наших движений, формируем движения и записываем.
Система сама заблокирует регистр в момент записи по тем измерениям, которые надо, проанализировав то, что мы записали.
После проведения блокировка снимется.

Этот вариант (второй) проще, называется "новая методика проведения документов" и 1С рекомендует использовать именно его в случае возможности и снимает баллы, если используется первый вариант, но в некоторых случаях его просто невозможно применить и используется первый вариант с объектом БлокировкаДанных (см. приведенный выше пример).

Также замечу, что независимо от выбранного способа, движения перед работой с ними необходимо очистить (см. предыдыщий совет)

*************************************************************************************************
Блокировка данных (способ блокировки №1 из приведенного выше описания)

Управляемая блокировка требуется там, где читаются данные и на основании этих данных делаются движения
Сам код управляемой блокировки быстрее всего получить, если ввести "БлокировкаДанных", вызвать Синтакс-помощник и оттуда просто скопировав код примера. Далее его просто изменить под название своего регистра и измерений.

Выглядит примерно следующим образом:

Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ТоварыНаСкладах"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = ТЧ; ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура"); Блокировка.Заблокировать();

*************************************************************************************************
Табличную часть документов лучше называть просто "ТЧ"

Табличная часть в 99% документов - одна. Такое унифицированное название табличных частей очень поможет сэкономить время, так как:
1) Очень короткое - быстро писать
2) Одинаковое для всех документов, не придется вспоминать при написании кода как она называется

*************************************************************************************************
Результат запроса проверять на пустоту перед выборкой или выгрузкой в ТЗ.

Вообще во всех задачах использовал выборку.

Выборка более оптимальна для системы с точки зрения производительности, так как "заточена" только для чтения данных (в отличие от ТЗ).

Но в любом случае до метода Выбрать() лучше проверить на пустоту результат запроса, это еще уменьшит нагрузку на систему.

Результат = Запрос.Выполнить(); Если Не Результат.Пустой() Тогда Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ... КонецЕсли;

А в случае, если нам нужно получить только одно значение из запроса
(например только метод списания в соответствии с учетной политикой, установленной на этот год):

Результат = Запрос.Выполнить(); Если Не Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); МетодСписанияСебестоимости = Выборка.МетодСписанияСебестоимости; КонецЕсли;

*************************************************************************************************
Документ "Операция" для задачи по БУ

Обязательно нужно создавать документ Операция для задач по БУ.

Отключаем у него проведение вообще (в свойствах "Проведение = Запретить"), указываем, что делает движения по регистру бухгалтерии, движения вытаскиваем на форму.

*************************************************************************************************
Оперативное проведение документов:

Должно быть включено :
В оперативном и бух. учете у документов должно быть включено (кроме документа "Операция", см. ниже).

Должно быть выключено :
в расчетных задачах не имеет смысла для документа начисления зарплаты.

Для документа "Операция" проведение вообще должно быть отключено (в свойствах документа "Проведение = Запретить"),
так как он пишет просто пишет данные напрямую в регистр при записи.

*************************************************************************************************
Условие в запросе вида "Или указанная номенклатура или любая, если не указана"

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

Номенклатура = &Номенклатура ИЛИ &Номенклатура = Значение(Справочник.Номенклатура.ПустаяСсылка)

Но более оптимально и правильнее это условие будет преобразовать (спасибо yukon):


Запрос.Текст = Запрос.Текст + " ГДЕ Номенклатура = &Номенклатура";

КонецЕсли;

С появлением объектной модели запроса в 8.3.5 условие можно будет добавлять безопаснее:

Если ЗначениеЗаполнено(Номенклатура) Тогда
Запрос1.Отбор.Добавить("Номенклатура = &Номенклатура");
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
КонецЕсли;

*************************************************************************************************
Присоединение таблиц в запросах:

Количество итоговых записей не зависит от того, будет ли выведено поле присоединяемой таблицы, зависит только от настроенных связей.
То есть поле присоединенной таблицы можно и не выводить.

Если требуется присоединить таблицу без всяких условий, то на закладке с условиями просто писать условие "ИСТИНА".
В этом случае таблица присоединится точно.

*************************************************************************************************
Использование плана видов характеристик (ПВХ):

1. Использование в качестве механизма описания характеристик объектов.

1.1. Создаем ПВХ. Это будут ВидыХарактеристик (например, цвет, размер, макс. скорость и т.д.). В настройках выбираем все возможные типы значений характеристик и если нужно создаем объект из пункта 1.2 и указываем его также в настройках.

1.2. Для дополнительных значений ПВХ создаем подчиненный ему справочник ДопЗначенияХарактеристик (или просто ЗначенияХарактеристик).
В нем будут хранится характеристики, если их нет в существующих справочниках. Мы можем его не создавать, если все нужные нам характеристики есть в существующих справочниках, либо эти значения можно представить элементарными типами данных. В настройках ПВХ указываем, что этот справочник будет использоваться для доп. значений характерестик.

1.3. Создаем регистр сведений, который собственно и связывает три объекта:
- Объект, к которому мы подключаем механизм характеристик
- ВидХарактеристики (тип ПВХ)
- ЗначениеХарактеристики (тип - характеристика, это новый тип, который появился в системе после создания ПВХ
и описывающий все возможные типы данных, которые может принимать значение характеристики).
В регистре сведений указываем, что ВидХарактеристики является владельцем для ЗначенияХарактеристики (свяхь параметра выбора), а также связь по типу для ЗначенияХарактеристики опять же от ВидаХарактеристики.

Еще такая особенность, что для каждого создаваемого вида характеристики можно указывать тип значения характеристики, если не нужны все возможные типы для описания значения этой характеристики.

2. Использование ПВХ для создания механизма субконто регистра бухгалтерии .

2.1. Создаем ПВХ ВидыСубконто.

2.2. Создаем подчиненный справочник ЗначенияСубконто (как с характеристиками, в нем будут значения субконто, если нет таких в других справочниках).

2.3. Связь производится с помощью плана счетов.

*************************************************************************************************
Ресурсы регистра бухгалтерии:

Сумма - балансовый,
Количество - небалансовый и связан с признаком учета Количественный

*************************************************************************************************
Виртуальные таблицы регистра бухгалтерии:

Обороты: обороты какого-то одного счета
ОборотыДтКт: обороты между какими-то двумя счетами, то есть все одинаковые проводки за период.

*************************************************************************************************
Валютный учет на регистрах бухгалтерии - как реализовать:

Создаем признак учета "валютный" в плане счетов.
В регистре бухгалтерии создаем дополнительно:
- измерение Валюта (запрет незаполненных значений, небалансовый, признак учета - валютный)
- ресурс ВалютнаяСумма (небалансовый, признак учета - валютный, в нем будет хранится сумма в валюте, то есть 100$ например)
Все.

Таким образом структура регистра:

Измерения:
- Валюта
Ресурсы
- Количество
- Сумма (сумма в рублях)
- ВалютнаяСумма (сумма в валюте)

Таким образом валютный учет - это лишь доработка обычного учета на РБ, он не изменяет сути к примеру ресурса Сумма
(там как и обычно сумма в рублях, независимо от того, валютный ли счет или нет).
И если признак учета Валютный для счета выключен, то это обычная структура РБ (ресурсы - только количество и сумма).

*************************************************************************************************
Условия при установке параметров виртуальной таблицы для получения среза последних накладываем на измерения, а не на ресурсы.

Иначе получим не срез последних, а последнюю запись с указанным значением ресурса - она может быть не последней по набору измерений

*************************************************************************************************
Смысл ресурса и реквизита в регистре расчета

В регистрах расчета создание ресурса дает возможность получать его при расчете базы по этому регистру.
И даже пропорционально заданному периоду будет пересчитываться значение ресурса (если базовый период не совпадает с периодичностью регистра).

А значение реквизита доступно только в реальной таблице регистра расчета, в виртуальных таблицах его нет.

*************************************************************************************************
Галочка "Базовое" в свойствах измерения регистра расчета
Означает, что по этому измерению в дальнейшем будет получаться база и служит для дополнительной индексации значений по этому полю.

*************************************************************************************************
Разбивка периода действия отпуска по месяцам при записи наборов записей регистра,
в случае если отпуск задается в документе одной строкой сразу на несколько месяцев одной строкой:

ДатаНачалаТекМесяца = НачалоМесяца(ТекСтрокаОсновныеНачисления.ПериодДействияНачало); ДатаОкончанияТекМесяца = КонецМесяца(ТекСтрокаОсновныеНачисления.ПериодДействияНачало); ТекМесяц = Дата; Пока ДатаНачалаТекМесяца <= НачалоМесяца(ТекСтрокаОсновныеНачисления.ПериодДействияКонец) Цикл Движение = Движения.ОсновныеНачисления.Добавить(); Движение.Сторно = Ложь; Движение.ВидРасчета = ТекСтрокаОсновныеНачисления.ВидРасчета; Движение.ПериодДействияНачало = Макс(ДатаНачалаТекМесяца, ТекСтрокаОсновныеНачисления.ПериодДействияНачало); Движение.ПериодДействияКонец = КонецДня(Мин(ДатаОкончанияТекМесяца, ТекСтрокаОсновныеНачисления.ПериодДействияКонец)); Движение.ПериодРегистрации = Дата; Движение.Сотрудник = ТекСтрокаОсновныеНачисления.Сотрудник; Движение.Подразделение = ТекСтрокаОсновныеНачисления.Подразделение; Движение.Сумма = 0; Движение.КоличествоДней = 0; Движение.График = ТекСтрокаОсновныеНачисления.График; Движение.Параметр = ТекСтрокаОсновныеНачисления.Параметр; Движение.БазовыйПериодНачало = НачалоМесяца(ДобавитьМесяц(Дата, -3)); Движение.БазовыйПериодКонец = КонецДня(КонецМесяца(ДобавитьМесяц(Дата, -1))); ДатаНачалаТекМесяца = НачалоМесяца(ДобавитьМесяц(ДатаНачалаТекМесяца, 1)); ДатаОкончанияТекМесяца = КонецМесяца(ДатаНачалаТекМесяца); КонецЦикла; КонецЕсли;

*************************************************************************************************
Построение Диаграммы Ганта:

Размещаем на форме элемент типа "ДиаграммаГанта", называем ДГ, далее создаем команду "Сформировать" и в модуле формы пишем следующее:

&НаКлиенте Процедура Сформировать(Команда) СформироватьНаСервере(); КонецПроцедуры &НаСервере Процедура СформироватьНаСервере() ДГ.Очистить(); ДГ.Обновление = Ложь; Запрос = Новый Запрос("ВЫБРАТЬ |ОсновныеНачисленияФактическийПериодДействия.Сотрудник, |ОсновныеНачисленияФактическийПериодДействия.ВидРасчета, |ОсновныеНачисленияФактическийПериодДействия.ПериодДействияНачало КАК ПериодДействияНачало, |ОсновныеНачисленияФактическийПериодДействия.ПериодДействияКонец КАК ПериодДействияКонец |ИЗ |РегистрРасчета.ОсновныеНачисления.ФактическийПериодДействия КАК ОсновныеНачисленияФактическийПериодДействия |ГДЕ |ОсновныеНачисленияФактическийПериодДействия.ПериодДействия МЕЖДУ &ДатаНачала И &ДатаОкончания"); Запрос.УстановитьПараметр("ДатаНачала", Период.ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", Период.ДатаОкончания); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Точка = ДГ.УстановитьТочку(Выборка.Сотрудник); Серия = ДГ.УстановитьСерию(Выборка.ВидРасчета); Значение = ДГ.ПолучитьЗначение(Точка, Серия); Интервал = Значение.Добавить(); Интервал.Начало = Выборка.ПериодДействияНачало; Интервал.Конец = Выборка.ПериодДействияКонец; КонецЦикла; ДГ.Обновление = Истина; КонецПроцедуры

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

*************************************************************************************************
Обработка записей "сторно" в расчетных задачах:

В процедуре обработки проведения (модуль объекта) формируем все движения, а далее если есть записи в других периодах получим их так
(система формирует их автоматически - помогает нам):

ЗаписиДополнения = Движения.ОсновныеНачисления.ПолучитьДополнение(); // Записывать движения для получения дополнения не нужно

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

А при расчете записей вставлять проверки:

Если ТекДвижение.Сторно Тогда
ТекДвижение.Сумма = - ТекДвижение.Сумма;
КонецЕсли;

*************************************************************************************************
Как определить что относить в основным начислениям, а что - к дополнительным в расчетных задачах.

Но не всегда это на 100% ясно, бывают и случаи посложней, хотя их довольно мало
(например премия, которая зависит от количества рабочих в месяце дней - это ОН).

Основные начисления:
Если по виду расчета есть зависимость от графика (имеется в виду регистр сведений с датами календаря), то он относится к основным начислениям.

Пример ОН:
- Оклад
- Что-то, что считается от количества рабочих дней (а для этого нужно использовать график): либо в периоде действия (как оклад), либо в базовом периоде

Дополнительные начисления:
То, что считается либо от начисленной суммы, либо ОТРАБОТАННОГО (а не нормы!) времени, либо вообще не зависит - это доп. начисления.

То есть: начисления для расчета которых используется норма времени (может еще и факт) - это ОН, а для которых фактические данные или вообще ничего не нужно - это ДН.

Или другими словами:

Если ВР использует норму времени, то для ПВР должен быть включен период действия.

*************************************************************************************************
Добавить возможность в форме списка справочника "Номенклатура" возможность открытия раздела встроенной справки "Работа со справочниками".

Сделать на форме команду:

&НаКлиенте
Процедура Справка(Команда)
ОткрытьСправку("v8help://1cv8/EnterprWorkingWithCatalogs");
КонецПроцедуры

Строку раздела определяем так:
Зайти в справочную информацию объекта конфигурации (в конфигураторе), написать слово, выделить его, зайти в меню Элементы/Ссылка и выбрать нужный раздел хелпа 1С, после этого ссылка подставляется автоматически. Выглядит сложно, на практике - все легко.

*************************************************************************************************
Осуществление взаимодействия между формами, например, подбор:

1. Из текущей формы открываем нужную методом "ОткрытьФорму()", вторым параметром передаем структуру с параметрами (если надо). Третьим параметром можем передать ссылку на эту форму - ЭтаФорма.

2. В открываемой форме в обработчике "ПриСозданииНаСервере()" мы можем поймать переданные в п.1 параметры через "Параметры.[ИмяПараметра]". Форма, которая инициализировала открытие этой формы, будет доступна через идентификатор "Владелец" (если она конечно была указана в п.1).

И что самое главное - будут доступны экспортные функции формы-владельца. То есть мы можем вызвать экспортную функцию исходной формы и передать туда что-то параметром для обработки подбора. А эта функция уже заполнит что нужно в исходной форме. Только одна оговорка - передавать таблицу значений между клиентскими процедурами нельзя, но мы можем поместить ее во временное хранилище и передать просто адрес ВХ, а уже там извлечь из ВХ.

*************************************************************************************************
Жизненный цикл параметров формы

Все параметры, переданные в форму в момент ее открытия видны только в процедуре «ПриСозданииНаСервере».
После создания все параметры уничтожаются и более не доступны в форме.
Исключение составляют параметры, которые в редакторе формы объявлены с признаком «Ключевой параметр».
Они определяют уникальность формы.
Такой параметр будет существовать до тех пор, пока существует сама форма.

*************************************************************************************************
Использование интерфейса "Такси"

При разработке можно установить в свойствах конфигурации обычный управляемый интерфейс 8.2 - так все заметно компактнее и привычнее.
Особенно это актуально, если сдаете удаленно - разрешение экрана очень маленькое, с интерфейсом "такси" невозможно ничего сделать.
Только не забудьте когда все сделаете поставить снова "Такси"! Иначе экзаменатор снимет балы!

*************************************************************************************************

PS: Есть отдельные типовые подзадачи, которые используются во всех задачах, именно их и нужно уметь решать (например, списание по партиям, использование ПВХ (ну это правда редко) и другие). И во всех задачах они просто повторяются (где-то одни подзадачи есть, где-то другие, просто в разных комбинациях). Тем более, что сборник же уже давно обещали новый выпустить (если еще не выпустили), в котором вроде задач должно быть намного больше, то есть нет смысла запоминать решения отдельных задач, есть смысл научиться решать отдельные типовые подзадачи, тогда решишь любую задачу.

PSS: Коллеги, если у кого-нибудь есть еще какая-либо полезная информация по подготовке к экзамену и сдаче, просьба писать в комментариях, дополним статью.

Аттестация по системе «1С:Предприятие 8»
Экзамен «1С:Специалист» по платформе «1С:Предприятие 8»

1 Форма проведения экзамена «1С:Специалист» по платформе «1С:Предприятие 8» и требования к кандидатам

Экзамен проводится с целью проверки соответствия уровня подготовки программистов требованиям, предъявляемым фирмой «1С» к специалистам.

Проверяется понимание основных принципов проектирования конфигураций и технологических решений, заложенных в платформе «1С:Предприятие 8» и практические навыки конфигурирования и программирования.

Экзамен проходит в форме решения практической задачи. Кандидат должен разработать конфигурацию по постановке, изложенной в задании, на базе так называемой «каркасной» конфигурации. «Каркасная» конфигурация представляет собой простейшую конфигурацию, содержащую минимум объектов, на которых можно поставить учет моделируемого предприятия. Она выдается кандидату в начале экзамена и предназначена для сокращения рутинных операций в процессе подготовки решения (например, формирование структуры справочников или заполнение данных документов). Сама задача, как правило, включает в себя работу с основными объектами учета: документами, планами счетов, видами характеристик, видами расчета, регистрами накопления, сведений, бухгалтерских и периодических расчетов.

На решение задачи отводится 4 часа. По окончании этого времени кандидат должен предложить действующий вариант конфигурации, в котором должны быть:

  • созданы/изменены соответствующим образом объекты метаданных;
  • отлажены программные модули объектов (процедуры обработки проведения – обязательно );
  • разработаны указанные в задании экранные и печатные формы.

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

В тех случаях, когда в задании явно указаны структуры объектов, типы и свойства элементов данных и методы встроенного языка, с помощью которых должна быть построена логика системы учета, кандидат обязан их использовать. Если в задаче это явно не описано, то кандидат вправе самостоятельно принимать проектные решения. Допускается изменение структуры «каркасной» конфигурации согласно требованиям задачи, и на усмотрение кандидата. В любом случае необходимо уметь обосновать свои решения, обеспечить их устойчивость и функциональность.

В процессе подготовки разрешается пользоваться документацией на программу, входящей в комплект поставки, а также — официально изданными методическими и учебными пособиями. Запрещается использовать распечатки (перепечатки), листинги и материалы на электронных носителях (дискетах, флешках, cd-дисках и проч…). Если экзаменуемый будет замечен за использованием запрещенных материалов, то он удаляется с экзамена с постановкой оценки «неудовлетворительно».

Защита разработанной конфигурации проводится путем проверки ее работоспособности на тестовых данных и собеседования по структуре объектов конфигурации и по использованным средствам встроенного языка.

2 Принципы компоновки задач

Задачи скомпонованы так, чтобы, как минимум, проверить знания и умения программирования и конфигурирования в рамках технологий и механизмов следующих разделов:

— бухгалтерского учета;

— периодических расчетов;

— оперативного учета и управления;

— бизнес-процессов и задач

Результат решения экзаменационной задачи оценивается по каждому из разделов. В случае отрицательной оценки работы по любому из разделов (кроме бизнес-процессов) – экзамен считается несданным.

Решение должно быть оптимизировано под работу в тонком клиенте, если иное не оговорено условием конкретной задачи.

Как правило, решение каждого из экзаменационных заданий включает в себя необходимость корректной реализации не более 12 программных или структурных механизмов, т.е. по 3-4 механизма на каждый раздел.

Основной перечень механизмов, которые нужно уметь реализовывать, следующий:

1) организация контроля остатка по регистру остатков;

2) работа с себестоимостью;

3) организация средневзвешенного списания;

4) организация партионного списания;

5) работа с оборотными показателями;

7) работа с регистрами сведений;

8) валютные пересчеты через кросс-курс

9) использование характеристик объектов (план видов характеристик)

10) работа с измерениями в регистрах бухгалтерии;

11) работа с небалансовыми измерениями и ресурсами регистра бухгалтерии;

12) средневзвешенное списание себестоимости по данным бух регистра;

13) работа с субконто (включая оборотные);

15) организация валютного учета;

16) организация количественного учета в бухгалтерии;

17) организация учета авансов;

18) работа с данными графиков по фактическому периоду действия;

19) работа с данными графиков по периоду регистрации;

20) работа с базовыми видами расчета — получение базы;

21) работа с вытесняющими расчетами — получение дополнения;

22) работа с ведущими видами расчетов — использование перерасчетов;

23) построение запросов по регистрам расчетов;

24) работа со сводной таблицей;

25) работа с построителем отчета;

26) работа с системой компоновки данных;

27) работа с механизмом бизнес-процессов;

28) использование временных таблиц в запросах;

29) работа с регламентными заданиями;

30) использование новой методики проведения документов;

31) работа с управляемыми блокировками данных при проведении документов;

32) формирование командного интерфейса;

33) работа с функциональными опциями;

34) использование механизмов, связанных с заполнением объектов данными;

35) работа с вариантами отчетов и настройками вариантов;

36) использование новых возможностей работы с динамическими списками;

37) работа с параметрами, с реквизитами, с элементами формы и т.д.;

38) использование механизма навигационных ссылок;

39) организация диалога с пользователем (оповещения, извещения, состояние);

40) работа с файлами и картинками.

Оценка по каждому разделу определяется исходя из полноты функциональности решения.

Оценка может быть снижена :

— За использование типов объектов и средств доступа и обработки данных — иных по сравнению с указанными в задании;

— За неэффективное решение;

— За ошибки при проектировании структур регистров и ошибки при разработке алгоритмов обработки данных.

3 Оценка результата выполнения задания

  • Задание, выполненное полностью и правильно, оценивается в 5 баллов;
  • При наличии ошибок в решении оценка выполнения задания за каждую из ошибок может быть снижена следующем порядке:
  • Список наиболее часто встречающихся ошибок, характерных для любой учетной задачи

Описание ошибки Балл
Неоптимальность предлагаемого решения или невыполнение отдельных пунктов задания. Упрощение решаемой задачи.При затруднении в отношении определения упрощения или усложнения задачи рекомендуется уточнить требования у экзаменатора 0,5 — 3,0
Не реализован приведенный в задании отчет 1,0
Форма приведенного в задании отчета не соответствует заданию 0,5 — 1,0
Механизм получения данных не соответствует заданию.Например, в задании может быть прямо указан механизм построения отчета с помощью компоновки данных, использования временных таблиц в обработке проведения документа и т.п. 1,0
Получение расчетных данных не из регистра.Единственной достоверной информацией в системе учета следует считать информацию регистров. Информация из документов может рассматриваться лишь как вспомогательная и не может быть абсолютно достоверной. Например, при наличии документа (аналога ручной операции в бухгалтерском учете), позволяющего интерактивно вводить записи в регистр 3,0
Построенная в решении учетная схема принципиально не позволяет одновременно вывести в ноль все ресурсы регистра накапливающего информацию об остатках. 0,5 — 2,0
Ресурсы регистра (один или все) изменяются документами только «в одну сторону» (только в «+» или только в «-«).Если из логики прикладной задачи следует, что нулю должны быть равны остатки одновременно по всем ресурсам регистра накопления, решение экзаменуемого должно обеспечивать данное обстоятельство. Нарушение вышеупомянутых требований приводит к неоправданному «распуханию» таблиц хранения итогов регистров; 2,0
Ресурсы регистра остатков (один или все) изменяются документами и в «+», и в «-«, но движения с противоположным знаком для одного того же объекта учета выполняются с разными наборами значений измерений, что также не обеспечивает выведения остатков ресурсов «в ноль». 2,0
Отсутствие в решении проверок на правильное заполнение ресурсов регистра, приводящее, например, к появлению отрицательных остатков товаров на складе. Наличие отрицательных значений ресурсов регистра допустимо, только если об этом явно сказано в задании или следует из логики учетной схемы, не противоречащей ситуации, возникающей в реальной практике ведения учета 1,0 — 2,0
Использование неправильных или упрощенных алгоритмов при расчете значений ресурсов регистра. Например, при решении «проблемы копеек» 0,5 — 2,0
Построенная в решении учетная схема не обеспечивает правильного занесения данных в регистры. Например, необходимо списать 1000, а списывается 500 2,0
Наличие ошибок в программном коде 0,25 — 3,0
В задачах получения итоговой информации по остаткам использование информации по оборотам или наоборот 2,0
В задачах получения итоговой информации использование прямого обращения к реальным таблицам регистра 1,5
В задачах получения данных из информационной базы установка отборов по неиндексированным полям 0,5
Если при проведении документа используются каким-то образом данные, считываемые из регистров, обязательно требуется предусмотреть получение таких данных на момент проведения документа 1,0
Конфигурация должна устойчиво работать не только при движении вперед, но и назад. То есть, при отмене действия любого документа состояние показателей, контролируемых системой, должно возвращаться в исходное положение (как было до движений документа). Фактически тогда можно будет размотать всю цепочку документов назад 1,0
Не реализована возможность корректного перепроведения документов задним числом 1,0
Конфигурация должна устойчиво работать при наличии дублей строк (номенклатуры или сотрудников или т.п.) в документах.Необходимо обеспечить корректное проведение документов при этом. 0,5
Получение информации, хранящейся в информационной базе, (остатков, оборотов, данных базы, данных графика и т.п.) в цикле 2,0
Отсутствие значений параметров в виртуальной таблице или использование вместо них условия «ГДЕ» 2,0
Отсутствие проверки на NULL 1,0
Неверное соединение таблиц 1,0
Использование механизма соединения таблиц вместо того, чтобы задать значения параметров виртуальных таблиц 0,5 – 1,0
Выгрузка результата запроса в промежуточную таблицу (например, в таблицу значений) без необходимости 1,0
Дополнительный вопрос 0,5 — 1,0
Отсутствие возможности работы предлагаемого решения в режиме управляемого приложения 3,0
Использование менее эффективной методики проведения документов 1,0

  • Список наиболее часто встречающихся ошибок, характерных для задач по оперативному учету

  • Список наиболее часто встречающихся ошибок, характерных для задач по бухгалтерскому учету
Описание ошибки Балл
3,0
Построение учетной схемы не на регистрах бухгалтерии 3,0
Используемая в решении учетная схема построена неправильно 0,5 — 2,0
Неверное использование принципа «двойной записи».Отсутствие двойной записи, когда она необходима или наличие в том случае, когда она не нужна. 2,0
Создана лишняя аналитика (например, измерение регистра) 0,5
У измерений и ресурсов регистра бухгалтерии неправильно расставлены флаги «балансовый» и настроены «признаки учета» 1,5
Не реализована или реализована неправильно настройка «признаков учета субконто» 1,0
Хранение остатков в том случае, когда необходима информация только об оборотах.При построении учетной схемы использованы обычные (не оборотные) субконто или измерения регистра для хранения данных и контроля, оборотных по своей сути показателей (не требующих хранения остатков) 1,5
При получении итоговых данных из регистра бухгалтерии не учитывается корреспонденция счетов 1,5
При получении итоговых данных из регистра бухгалтерии не учитывается или учитывается не правильно аналитика на счете 1,0

  • Список наиболее часто встречающихся ошибок, характерных для задач по сложным периодическим расчетам

Описание ошибки Балл
Задача не реализована целиком 3,0
Построение учетной схемы не на регистрах расчетов 3,0
Неправильно настроены зависимости по вытеснению и по базе между видами расчета, использующимися в решении 1,0
Использование регистра расчета, обладающего «Периодом действия» для реализации учета по видам расчета, не обладающих «Периодом действия» 1,5
Нет связи с графиком в регистре расчета или такая связь задана неверно.Например, в измерении вместо реквизита или наоборот. 1,0
Получение данных графика через таблицу регистра сведений 2,0
В задачах получения расчетнойбазы неверно использована аналитика.Не используются или используются неправильно измерения регистра 1,0
Получение расчетной базы через основную таблицу регистра расчета 2,0
В задаче получения расчетной базы не оптимизирована скорость отбора по измерениям регистра расчета 0,5
Неправильно настроена зависимость по ведущим видам расчета 1,0
Создание перерасчета в регистре, где не могут появиться данные перерасчета. 1,0
При решении задачи перерасчетов неправильно настроены объекты перерасчета (например, измерения перерасчетов) 1,5
Получение данных для проведения расчетов на основании незаписанных или не рассчитанных данных 1,0
Подключение без необходимости механизма автоматической перезаписи таблицы фактического периода действия в момент занесения данных по расчетам в информационную базу 0,5
В решении отсутствует механизм сторнирования записей регистра расчета при вводе вытесняющего вида расчета в текущем расчетном периоде за прошлый период при условии, что такая ситуация явно описана в задании 1,0
Реализация сторнирования записей регистра расчета без использования специализированных и оптимизированных механизмов платформы 1,5
Решение задач накопления на регистре расчета 2,0
  • Список наиболее часто встречающихся ошибок, характерных для задач по бизнес-процессам
Описание ошибки Балл
Задача не реализована целиком 1,5
В форме бизнес-процесса не отражается его текущее состояние 1,0
Не реализована или работает неправильно форма списка невыполненных задач текущего пользователя системы 1,0
Задана персональная адресация задач без необходимости 1,0
Задана ролевая адресация задач без необходимости 1,0
Созданы избыточные признаки адресации, как у задач, так и у регистра адресации 0,5
Неверно заполнен регистр адресации 1,0
Отсутствует возможность отображения полного списка задач 0,5

  • Список наиболее часто встречающихся ошибок, характерных для задач по управляемым формам

  • При проверке решения, в случае обнаружения ошибок, экзаменатор не обязан объяснять сдающему, как надо было правильно построить решение рассматриваемой экзаменационной задачи;

Экзамен считается сданным успешно при оценке за экзамен «отлично», «хорошо» или «удовлетворительно». Оценка за экзамен выводится исходя из пятибалльной системы по следующей схеме:

  • если полученный результат окажется менее 2.2 баллов, то за экзамен выставляется оценка «неудовлетворительно»;
  • если полученный результат окажется в интервале от 2.2 до 3.5 баллов, то за экзамен выставляется оценка «удовлетворительно»;
  • если полученный результат окажется в интервале от 3.5 до 4.5 баллов, то за экзамен выставляется оценка «хорошо»;
  • если полученный результат окажется 4.5 и более баллов, то за экзамен выставляется оценка «отлично».

Для подготовки к экзамену «1С: Специалист по платформе «1С:Предприятие 8» рекомендуется использовать Сборник задач для подготовки к экзамену «1С:Специалист» по платформе «1С:Предприятие 8» с примерами решений.

4 Примеры заданий:

Общие требования

Необходимо создать интерфейс решения учебной задачи, в котором разделение объектов по закладкам Панели разделов должно происходить исходя из их принадлежности к соответствующему разделу задания (оперативный учет, бухгалтерский учет, сложные периодические расчеты, бизнес-процесс). Панель навигации по каждой закладке должна обеспечивать доступ ко всем объектам данного раздела, в том числе и к регистрам. Объекты должны быть сгруппированы по своему виду: справочники, документы, прочие объекты. При создании командного интерфейса необходимо задействовать механизм подсистем. Примерный вид интерфейса показан на рис.1.

Рис.1. Примерный вид интерфейса учебной задачи

Оперативный учет

Компания занимается оптовой торговлей. Поступление товаров отражается документом «Приходная накладная», продажа — «Расходная накладная». Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в разных табличных частях.

Учет товаров ведется в разрезе складов. Поступление и продажа осуществляются с указанием склада (в шапке документа).

Списание себестоимости должно быть организовано по партиям, в зависимости от текущего значения принятого на этот год в учетной политике метода списания себестоимости (FIFO или LIFO). Еще раз подчеркивается – учетная политика действует год. На следующий год метод списания может смениться.

Для расчета себестоимости при списании товара необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел. Предположим, что для метода списания FIFO первое поступление портсигара произошло на склад «Основной» документом «Приходная накладная №1», а потом на склад «Транзитный» документом «Приходная накладная №2». В этом случае при продаже товара со склада «Транзитный» в первую очередь должна быть списана себестоимость портсигара по документу «Приходная накладная №1», так как она пришла раньше.

Необходимо построить отчет по продажам товаров за период и остаткам товара по складам на указанную дату.

Продажи с 01.01.2009 по 31.03.2009

Номенклатура Кол-во Себест-сть Продажа Прибыль
Куртка замшевая 3 300 620 320
Портсигар 3 30 50 20
Доставка 1 100 100

Прибыль рассчитывается: «Сумма продаж» — «Себестоимость»

Остатки товаров на 01.01.2009

Склад Номенклатура Кол-во
Основной
Куртка замшевая 2
Портсигар 2
Транзитный
Куртка замшевая 5
Кинокамера 1

Бухгалтерский учет

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

Документ «Выдача займа» реализует следующую проводку:

Дт «Кредиты и займы выданные» — Кт «Касса» на сумму выданных средств.

Наличие денег в кассе контролировать не нужно.

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

Документ «Возврат займа» реализует следующую проводку:

Дт «Касса» — Кт «Кредиты и займы выданные» на сумму возвращаемого займа.

Если займ был возвращен позже указанного срока, в документе дополнительно указывается дата возврата штрафа и документ делает дополнительную проводку:

Дт «Кредиты и займы выданные» — Кт «Прибыли и убытки»

на сумму, рассчитываемую как 0,1% от полной суммы предоставленного займа.

Фактически это означает начисление штрафной суммы в виде вновь выданного займа. Этот займ погашается другим экземпляром документа «Возврат займа». Штрафные санкции не начисляются, когда сумма штрафа становится меньше 1 копейки.

В системе должен быть предусмотрен отчет о выданных займах.

Выданные сотрудникам займы за период с 01.01.2009 по 31.01.2009

Сотрудник Сумма займа Планируемая дата возвращения Реальная дата возвращения Является штрафом
Онопко 100 000 10 января 2009 20 января 2009
Онопко 100 25 января 2009 25 января 2009 V
Халиков 12 788 04 декабря 2009

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

Необходимо создать документ «Операция», с помощью которого пользователь должен иметь возможность ввести проводки с произвольной корреспонденцией счетов. При решении задачи следует учитывать возможность наличия проводок, сформированных с помощью данного документа.

Сложные периодические расчеты

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

Сотрудники предприятия получают оплату по окладу пропорционально отработанному времени в часах. Часовая ставка рассчитывается как начальное значение оклада, деленное на количество рабочих часов в том же периоде, что и фактически отработанные часы. В течение расчетного периода первоначальное значение оклада может быть один раз изменено. Расчет должен производиться исходя из действующего на рассчитываемую дату начального значения оклада. Например, если начальное значение оклада изменилось 10 августа, то до 10 августа при расчете берется старое значение, а начиная с 10 августа – новое.

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

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

Механизм перерасчетов в рамках данной задачи использовать не надо.

Ввод всех начислений происходит документом «Начисление зарплаты». Считать, что все данные вводятся только в пределах одного месяца, например, можно указать начисление оклада с 10.01 по 31.01, а запись оклад: с 10.01 по 03.02 вводить нельзя.

Для анализа полученных сотрудниками предприятия премий в конфигурации необходимо предусмотреть отчет за любой расчетный период следующего вида:

Начислено премий с 01.01.2009 по 31.01.2009

Управляемые формы

Для документов «Приходная накладная» и «Расходная накладная» необходимо создать основные управляемые формы документов следующего вида:

Рис.2. Вид основной формы документа «Приходная накладная»

Рис.3. Вид основной формы документа «Расходная накладная»

В формах обоих документов необходимо реализовать автоматическое вычисление суммы по строке табличной части документа при вводе в эту строку количества покупаемого (продаваемого) товара или его цены, а также сделать расчет общей суммы по документу.

Для документа «Начисление зарплаты» необходимо создать основную управляемую форму списка, в которой для текущего документа должны быть отражены записи, сделанные им в регистрах расчета. Вид формы вместе со всем разделом «Периодические расчеты» показа на рисунке 4:

Рис.4. Вид основной формы списка документа «Начисление зарплаты»

  1. План-график подготовки и используемые материалы.
  2. Основные прикладные задачи, рассматриваемые на экзамене и их применимость в работе.
  3. Совершенные ошибки. Разбор.
  4. Полезные приемы и рекомендации для успешной сдачи.

1. Начальный уровень. Что умел и с чем работал до начала подготовки.

В первый раз увидел конфигуратор 1С:8 примерно за три года до начала подготовки. При этом первые года 1,5 были исключительно ознакомительные и теоретические и занимали совсем небольшую часть времени, основная работа была на платформе 7.7. Следующие 1,5 года уже 100% занятость на 8ке, а именно: написание отчетов, незначительные доработки отдельных подсистем конфигурации 1С:УПП 1.3. Задач, аналогичных тем, которые решаются на экзамене, практически не было, за исключением «пройтись отладчиком, чтобы проанализировать обработку проведения» или сделать подписку на событие, которая будет «дополнять» типовые механизмы. Это все иллюстрирует, что уровень знаний был чуть более, чем минимальный.

Почему принял решение сдавать на сертификат “1С:Профессионал по Платформе” :

2. План-график подготовки и используемые материалы

Финансовые затраты на подготовку.

  1. Приобретение курса Павла Чистова от проекта « ». 8 700 рублей (если повезет, можно попасть на скидку).
  2. Книга «Сборник задач для подготовки к экзамену 1С:Специалист по платформе». 1 000 рублей
  3. Сдача экзамена. Удалённо со второй попытки 2 100 (первая попытка) + 800 (вторая) = 2 900.

Итого: 12 600 рублей.

1,5 месяца – плотное изучения материалов курса Павла Чистова (обязательное активное участие в мастер группе , просмотр чужих вопросов и формулировка своих). Я сам задал порядка 10 вопросов по всем разделам.

Следующие 1,5 месяца – самостоятельное решение задач из сборника, а также сравнение своих решений с решениями коллег, опубликованные на форуме Павла Чистова. Полностью прорешал примерно по 10 задач из каждого раздела и еще примерно по столько же – внимательно изучал решения других, анализируя и выбирая наиболее правильные из них (с моей точки зрения). Анализ других решений и чтение обсуждений решений задач заняло очень много времени, но, поверьте, это стоит того.

Основные прикладные задачи, рассматриваемые на экзамене, и их применимость в работе.

Хотелось бы выделить основные направления прикладных задач. Думаю, это будет интересно для тех, кто сомневается, стоит ли готовиться и сдавать, если «это мне вообще в жизни не пригодится».

1. Оперативный учет

Партионный учет во всех его вариациях и совмещениях со списанием по среднему.

Взаиморасчеты с контрагентами (в разрезе проектов, договоров, с учетом авансов).

Комплектация, разузлование номенклатуры.

Характеристики и свойства номенклатуры (контрагентов). Использование плана видов характеристик.

Бюджетирование

Валютный учет взаиморасчетов.

Методика оперативного проведения (может быть применима в разных темах)

2. Бухгалтерский учет. Прикладные задачи аналогичны Оперативному учету. Особенности и отличия в реализации:

Организации, подразделения, валюты – как правило, новое измерения в Регистре Бухгалтерии (для остальных задач достаточно добавление субконто).

Понимание необходимости проставление признаков учета (для счетов) и признаков учета по субконто (для видов субконто).

Понимание необходимости указывать признак «оборотное» для видов субконто.

3. Сложные периодические расчеты.

Определение принадлежности к видам расчетов: Основные начисления, Дополнительные начисления, Удержания.

Установка периода действия для расчетов

Настройка зависимости от базы

Настройка вытеснений

Включение возможности перерасчетов

Учет сторно-записей

Метод отклонений и метод сплошной регистрации

4. Управляемые формы и бизнес-процессы.

Форма подбора + Drag & Drop

Работа с динамическим списком, передача параметров.

Механизм оповещений

Интерфейсные доработки (сохранение, передача навигационных ссылок, отображение движений в регистрах по документу, доработка функционала бизнес-процессов).

Механизм ролевой адресации задач в бизнес-процессах.

Решение задач по управляемым формам и бизнес-процессам я выделил бы отдельным пунктом.

Управляемые формы – 2-3 дня по пару часов, уже ближе к экзамену. Этого времени будет достаточно, чтобы подготовиться к задачам (их немного).

Бизнес процессы – один день, примерно 3 часа. 1,5 часа – изучение механизмов, следующие 1,5 часа – решение 3-4 задач. Они однотипные. Этого будет достаточно.

Итого: три месяца. В будние дни удавалось уделять времени меньше, из-за занятости на основной работе, в выходные старался компенсировать. В среднем получилось примерно по 1 часу в день.

Временной ориентир на самом экзамене:

Как я уже говорил, сдавал я дважды, т.к. в первый раз провалил. Привожу временную шкалу процесса сдачи экзамена, на что и сколько времени уходит/следует потратить.

5 минут – чтение правил и условий сдачи, выдается на экзамене.

1 час – решение каждой из задач (ОУ, БУ, СПР).

20-30 минут – ввод данных, устранение ошибок, отчет

20-30 минут – Управляемые формы (Бизнес-процессы)

5-10 минут – конструирование командного интерфейса.

Те же цифры в виде диаграммы:

Разбор ошибок

Привожу список ошибок, которые были допущены мной на экзамене, и комментарии к этим ошибкам. Основные причины ошибок – потеря концентрации и невнимательность , а также «изобретение велосипеда» . При первой сдаче было 7 ошибок (оценка не проставлена), при повторной – 3 ошибки (оценка «хорошо»).

Первая попытка:

1) ОУ.Лишний регистр накопления.

Попалась задача, очень похожая на задачу 1.3 из сборника. Решил сделать на двух регистрах, используя «новую методику » контроля остатков. Проверяющие посчитали это ошибкой. На форуме П. Чистова находил как отзывы, что моё решение правильное, так и наоборот. В общем, «не повезло». Вывод – не стоит изобретать велосипед.

2) ОУ.Списание по средней выполнено неверно.

В документе поступления при записи движений для измерения «Партия» забыл сделать проверку Если МетодСписания <> ПоСреднему…

Вывод: невнимательность.

3) БУ. Неверно настроены признаки учета.

Очень любопытная ошибка. Налицо глюк платформы. Краткое описание:

Создаю признак учета для счета «Количественный». Пытаюсь выбрать его для ресурса «Количество», но в списке выбора – пусто:

Обращаю внимание: данное поведение встречалось при подготовке, и ОБА РАЗА при сдаче экзамена.

Первый раз описал подробный сценарий этого поведения в текстовом файле, но по факту признак учета проставить не смог. Экзаменатор на мои комментарии и объяснения ответил (цитата):

«Проблема отсутствия признака при настройке решается элементарным закрытием и повторным открытием окна. В крайнем случае, требуется закрыть и открыть заново конфигуратор. Претендент на звание “1С:Специалист” должен владеть данным приёмом, равно как и уметь решать подобного рода проблемы, могущие встретиться в реальной работе.»

При повторной задаче открытие/закрытие окна не помогло. А вот перезапуск конфигуратора помог.

Вывод: необходимо владеть всеми приемами работы в конфигураторе.

1) СПР: Неверно используется период регистрации.

В расчетной задаче было явно сказано «данные в документе начисление могут вводиться за любой период», поэтому решил вывести ПериодРегистрации в табличную часть. Это оказалось ошибкой, комментарий:

Использование периода регистрации в табличной части никак не следует из условия задачи, не требуется для ее решения и противоречит стандартной методологии.

Вывод: не следует использовать приемы, которые противоречат стандартной методологии.

2) Некорректно используется проверка на NULL.

В виртуальных таблицах регистров расчета (ДанныеГрафика, БазовыйПериод) ко всем полям применял функцию isnull. Это посчитали за ошибку , т.к. некоторые поля никогда не могут быть null (например, поле НомерСтроки таблицы ДанныеГрафика).

3) СПР: Ошибки с неверным расчетом Сторно-Записей и Отработанного времени.

Производил расчет сторно там где его быть не могло, а где мог – наоборот, не производил.

4) СПР: неверно рассчитано отработанное время. Аналогично Сторно: ресурс ОтработаноЧасов рассчитывал там, где его быть не могло.

Вывод: неполное понимание прикладной логики задачи. Необходимо внимательнее читать и анализировать задачу.

Повторна попытка сдачи (успешная):

1) СПР: неверная связь данных графика с регистром.

Забыл привязать в Регистре расчета значения измерений и ресурсов к значениям графика.

2) Нет проверки на NULL.

Ошибка, прямо противоположная ошибке при первой сдаче. Забыл сделать проверку на NULL.

3) Лишняя таблица в запросе.

В задаче по СПР делал предварительную группировку реквизитов табличной части и создавал временную таблицу. Во втором пакете делал соединение с регистром, где хранятся оклады сотрудников. Экзаменаторы посчитали, что временная таблица – лишняя. Наверное потому, что группировать просто нечего и смысла не имеет.

Вывод: не стоит изобретать велосипед.

Навыки и знания, приобретенные в процессе подготовки

  1. Оперативный учет.

1.1. Методика оперативного проведения («новая» методика контроля остатков). На сайте Павла Чистова есть подробное описание данного механизма:

Включение «Разрешить разделение итогов» и установка «БлокироватьДляИзменения» при списании. Чтобы ускорить процесс записи движений, не нарваться на Взаимоблокировку и не списать в минус.

1.2 При списании практически всегда необходимо устанавливать БлокироватьДляИзменения и записывать пустой набор. Подробное описание с форума Чистова: http://chistov.spb.ru/forum/16-1999-22182-16-1334812078 После чего уже устанавливается управляемая блокировка на необходимый ресурс.

2. Бухгалтерский учет.

2.1. Необходимость создания признаков учета (счетов и субконто). Не забывать проставлять признаки и следить за признаком «балансовый» для ресурсов (как правило, для ресурса Количество признак «балансовый» снимается).

2.2. Признаки учета по субконто используются достаточно редко. Например, есть три субконто (Товар, Склад, Партия), а себестоимость нужно хранить только в разрезе Товара и Партии. Создается признак учета по субконто (Суммовой), и указывается только для Товара и Партии.

2.3. Увеличение максимального кол-ва субконто приводит к увеличению физических таблиц в БД, поэтому наиболее часто используемые субконто следует переносить в измерение (Валюта, Организация, Подразделение)

2.4. Необходимость данных манипуляций – оптимизация хранения данных в Базе Данных, а также упрощение запросов виртуальных таблиц.

3. Сложные периодические расчеты.

3.1. Принадлежность к видам расчетов различных способов:

Основные начисления – Оклад, Командировка, Отпуск, Больничный, Невыход, Простой. Почти всегда используется период действия (исключения могут быть, если есть документ Табель).

Дополнительные начисления – Компенсация, Премия. Почти всегда не имеет протяженности, но зависит от базы.

Удержания – Алименты, Штраф, Взносы.

3.2. Типовой алгоритм проектирования:

Создание Плана видов расчета

Создание Регистра расчета. В основном структура регистра: 2 измерения (Сотрудник, Подразделение), 2 ресурса (Сумма, ОтработаноДней), 2 реквизита (График, ВременныйПоказатель). Почти всегда периодичность – месяц.

Предварительные записи в регистр в Модуле объекта документа (без отклонений), на основании которых в Общем модуле происходит расчет показателей.

3.3. Если в Регистре Сведений График 2 ресурса (Дни и Часы), то в качестве «Значение графика» необходимо указывать ресурс того ПВР, который будет самый «вытесняемым» (Пример: Оклад – по дням, Больничный – по часам: указывается для Регистра Расчета ресурс Часы)

3.4. Сторно. Везде, где есть фраза «Следует учесть работу задним числом». Метод ПолучитьДополнение(), заполняем полученную этим методом ТЗ с помощью ЗаполнитьЗначениеСвойств() и Дополняем СторноДанными. При расчете: Если Запись.Сторно Тогда…


1) В правилах к экзамену есть пункт «оценка может быть пересмотрена в пользу экзаменующегося (завышена), если предложено нестандартное решение». Мой совет – решать всё по шаблону и не пытаться преподнести «нестандартное решение» . По крайней мере при удаленной сдаче.

2) Предельная концентрация и внимательность . Большинство моих ошибок были как раз из-за потери внимательности.

3) Кратенькие шпоры. Тут уж на своё усмотрение 🙂 . Я, например, делал краткое описание последовательности конструирования Планов видов характеристик, последовательность действий при программировании бизнес-процессов. Удаленная сдача снимается на камеру, тем не менее «мертвые зоны» есть и подсмотреть можно. Но не стоит на это сильно уповать – всё-таки теряется время.

4) Внимательное чтение + перечитывание задачи (минимум раза три, в том числе отчет), выписать все важные моменты и по ходу реализации задачи отмечать их выполнение.

5) Разумный минимум пользовательских данных , чтобы не тратить время на введение, но в то же время хватило для проверки функционала.

Удачи всем на экзамене!