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

Рептилии

Внимание! Теперь курс проводится и в вечернее время с 18:30 до 21:30 в формате погружения.

Цель курса: пояснить критерии, по которым принимается экзамен "1С:Специалист по платформе 1С:Предприятие 8". Разъяснить перечень "типовых" ошибок, приведенных в правилах к экзамену. Предполагается, что прохождение данного семинара поможет лучшим образом подготовиться к экзамену. Рекомендуется его проходить не перед самим экзаменом, а во время подготовки, или даже перед началом подготовки к нему.

В рамках курса рассматриваются две задачи схожих с экзаменационной.

На первых двух занятиях Вы изучаете видеоматериалы, в которых преподаватель рассказывает о том, как проходит экзамен, основные требования к нему, а также разбирает решение Задачи №1.
Разбираемое решение с первого взгляда производит благоприятное впечатление, но после детального разбора его оценка оказывается неудовлетворительной.
Основной упор при разборе задачи будет сделан на механизмы, проверяемые на экзамене. Подробно показаны ошибки, часто допускаемые на экзамене.
Также в рамках этой части рекомендуется посмотреть постановку Задачи №2 (для самостоятельного решения в рамках второго занятия) детально разобрать условия задачи и наметить схему решения.

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

Логин: _ГостьКурсаРешениеЗадачиПохожейНаЭкзаменационную

БЕЗ ПАРОЛЯ

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

В стоимость WEB-курса включено:

  • 3 недели курса, 3 вебинара с преподавателем
  • свидетельство 1С-Учебного центра №3 (при условии выполнения практики)

В стоимость очного курса-погружения включено:

  • 3 дня с 10:00 до 17:00 или 6 вечеров с 18:30 по 21:30
  • конспект, наушники
  • обеды, кофе-брейки
  • доступ на 3 месяца к обновляемым видеоматериалам после окончания курса
  • свидетельство 1С-Учебного центра №3

Форматы обучения

WEB-обучение

Что это за формат: Предлагаемый формат сочетает многие преимущества дистанционного обучения с очной составляющей, представленной видеоматериалами и онлайн-консультациями.
WEB-курс состоит из видеороликов, практических задач и вебинаров с преподавателям. Ко всем материалам курса предоставляется круглосуточный доступ через Интернет – можно заниматься в удобное время. Курс разделен на занятия. В течение занятия изучаются материалы по текущей теме, выполняются практикумы, задаются вопросы преподавателю. В конце каждого занятия проводится вебинар, на котором преподаватель разбирает все поступившие вопросы, типовые ошибки, объясняет правильное решение. Запись вебинаров доступна в портале. Таким образом проходят несколько занятий одно за другим. В конце проводится итоговая самостоятельная работа и итоговый вебинар.

Продолжительность: 3 недели

Что это за формат:


Продолжительность: 24 академических часа

Что это за формат: Очный курс-погружение - формат, сочетающий в себе все плюсы очного обучения, дистанционных технологий и индивидуального обучения. Занятия проходят в оборудованном учебном классе, Вы самостоятельно изучаете материалы курса (пошаговые видеоролики) и выполняете практикумы. При этом в аудитории находится преподаватель, который готов в любой момент ответить на вопрос и помочь с решением практических задач, а также проверить правильность их выполнения.
Преимущества – индивидуальные консультации преподавателя по Вашим вопросам, подходящий лично для Вас темп прохождения материала.
Все это дает более глубокую проработку материала курса.
Этот курс возможно пройти со своего рабочего места с полным эффектом присутствия преподавателя там, где ученик! Если эта возможность Вас заинтересовала – позвоните нам!

Продолжительность: 24 академических часа

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

Занятие №1 (2,5 часа видео)

Введение, цели, способ проведения курса

Правила экзамена

  • Форма проведения экзамена
  • Принципы компоновки задач, критерии оценки

Начало сдачи

Общие положения

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

  • Разбор подзадачи
  • Поступление товаров
  • Старый подход, блокировка, очистка движений
  • Запрос (лишнее поле)
  • Новый подход
  • Тип цены, БлокироватьДляИзменения
  • Вид границы, оперативное/неоперативное проведение
  • Отчет
  • Пользовательские настройки, варианты отчета

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

  • Рекомендация
  • Предмет задачи
  • Методика проведения документа
  • Валютный учет, организации
  • План счетов
  • Регистр бухгалтерии
  • Проведение "Расходная накладная"
  • Проведение "Приход денег"
  • Отчет
  • Документ "Операция"

Занятие №2 (около 3х часов видео)

Расчетная часть задачи

  • Рекомендация (план анализа)
  • Рекомендация (план анализа) (текст)
  • Анализ задачи
  • Планы видов расчета каркасной
  • Настройка объектов
  • Обработка проведения
  • Допущенные ошибки (первая часть)
  • Допущенные ошибки (вторая часть)
  • Отчет

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

  • Учет по сериям
  • Валютный учет
  • Форма подбора (модальное окно)
  • Форма подбора (без модальных вызовов)

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

решение задач оперативного,
бухгалтерского учетов и периодических расчетов

В ходе курса:

  • под руководством опытного тренера, Вы решите 25 задач;
  • освоите приемы конфигурирования в соответствии со "Стандартами разработки конфигураций", подготовленными методистами отдела разработки фирмы "1С";
  • разберете типичные ошибки, встречающиеся в ходе практических внедрений и на экзамене, а также способы их преодоления.

Курс ведет Павел Белоусов , который вот уже более 20 лет принимает экзамен 1С:Специалист и является одним из его разработчиков. Вряд ли кто-то сможет рассказать об экзамене больше, чем он.

Важно знать!

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

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


69% слушателей успешно сдали экзамен после прохождения весенней серии курса подготовки к экзамену (из числа сдававших после курса).


Обновление курса:

  • Количество лекций увеличено в два раза , при этом преподаватель будет комментировать все вопросы, возникающие в ходе курса.
  • Добавлены 1 лекция и 5 онлайн-консультаций , будут разбираться типовые ошибки в домашних заданиях всей группы.
  • Частота проведения занятий снижена для комфортного обучения. Теперь курс строится по схеме чередования тематических блоков и периодов выполнения домашних заданий и самостоятельной подготовки .

Эти изменения создают более комфортные условия для обучения и усвоения пройденного материала.

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

Название семинара

Особенности задач накопления, общие подходы к решению экзаменационных задач

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

Методика решения задач оперативного учета

Проектирование регистров накопления - универсальный подход

Особенности записи и чтения данных из регистров накопления

Две методики проведения документов оперативного учета

Построение отчетов

Решение задач бухгалтерского учета

Методика решения задач бухгалтерского учета

Особенности проведения документов и построения отчетов в задачах бухгалтерского учета

Методика решения расчетных задач

Постановка задачи

Проведение расчетных документов

Работа со временем (продолжение)

Использование табеля

Получение базы

По всем измерениям регистра расчета

По нескольким измерениям регистра расчета

Использование разрезов

Использование базы для получения времени

Работа с перерасчетами и дополнениями

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

Настройка регистров расчета

Создание отчетов

Обработка перерасчетов

Формирование сторно-записей

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

Расчет в форме. Создание видов расчета в пользовательском режиме. Реализация выплаты. Реализация переходящих с периода на период видов расчета

с 17.00 до 21.00

Устройство регистров бухгалтерии

Выбор между счетами, субконто и измерениями

Понятие «балансовый», «признак учета», «признак учета субконто», «оборотное субконто»

Начало решения учебной задачи

Работа со временем

Определение календарного времени

Определение рабочего времени

Определение фактического времени при использовании метода отклонений

Диаграмма Ганта

Пример домашнего задания

Вы решите еще 24 задачи!

Порядок проведения онлайн-курса:

  • Курс проводится в режиме online-трансляции (с предоставлением записи материалов)
  • Предусмотрено 11 онлайн-занятий (с 8 по 31 июля)
    + 6 консультаций (с 5 августа по 9 сентября) с 17:00 до 21:00
Онлайн-курс - это:
  • две формы передачи материалов: онлайн-консультация с тренером и видеозапись.
  • лекционная часть записывается и доступ к видео предоставляется всем участникам онлайн-курса.
  • тренер ведет онлайн-консультацию, отвечает на вопросы и разбирает ошибки.
  • после каждой консультации участники получают домашнее задание для закрепления пройденного материала. Выполнение домашнего задания является обязательным. При этом тренер проверяет каждую задачу а даст обратную связь всем слушателям.

После обучения (в течение месяца) предоставляется бесплатная попытка аттестации "1С:Специалист" по платформе "1С:Предприятие 8.3" в 1С:Учебном центре №1 (для жителей г.Москва и Московской области) и в ближайшем Сертифицированном экзаменационном центре (для других регионов).

Автор курса

Белоусов Павел Станиславович

Кандидат наук, опыт преподавания и использования программ "1С" - более 15 лет. Практикующий экзаменатор, один из авторов "Сборника задач для подготовки к экзамену "1С:Специалист" по платформе "1С:Предприятие 8.3"

Ура, друзья! Я сдал на специалиста в начале июля этого года!

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

На этом курсе очень много времени уделяется теории и задачам по Сложным периодическим расчетам, и примерно половину времени на задачи по Оперативному и Бухгалтерскому учету. В процессе обучения преподаватель задает домашние задания по пройденным темам и проверяет их. Общение с преподом происходит либо онлайн в чате во время просмотра, либо по электронной почте. Если не успеваете посмотреть курс Онлайн, то через день-два можно посмотреть запись Оффлайн. Задачи, которые задают на дом, очень емкие и сложные, что после таких задач экзамен кажется простым.

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

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

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

Экзамен. На экзамен я приехал минут за 40, и за 20 минут до начала началась регистрация. Зарегистрировался я вторым или третьим и сразу направился в аудиторию. Выбрал компьютер, включил его, не дожидаясь команды, полазил по сетевым дискам — нашел каркасную конфигурацию, загрузил и сразу принялся настраивать подсистемы, командный интерфейс, «разминировал» конфигурацию, сделал параметр сеанса текущего пользователя, его установку. Эти 20 минут мне очень помогли. Аудитория уже наполнилась людьми. Вот показался препод и представился Дмитрием Аксеновым. А я рассчитывал увидеть Павла Белоусова, т.к. курс проводил он 🙁

И вот достался мне билет под номером 5. Кстати компьютер за которым я сидел тоже был под номером 5 (наклейка на мониторе сзади). И сдал на 5. Билет был не очень сложным, но и не легким.

Билет не сфоткал, но попробую воспроизвести по памяти: ОУ списание себестоимости с приоритетом по складам, причем в первую очередь склад в шапке. Ерунда.
БУ списание себестоимости по партиям и складам, склады — реквизиты табличной части.
СПР сотрудники работают на различных автомобилях:
Фиксированная сумма (без периода действия!),
надбавка (без периода действия) по сумме выплат (сумму выплат брал из БУ — добавил субконто автомобиль, или как-то так. Не помню точно) плюс процент от надбавки (хранится в периодическом регистре сведений),
отпуск по базе (все выплаты, в т.ч. и отпуск) за предыдущие три месяца.
Ну и на десерт — бизнес-процессы.

Решал билет 3,5 часа вместе с 20 минутами форы. Аксенов нашел одну небольшую ошибку в запросе и спросил ничего ли я не замечаю здесь. Я тут же увидел косяк и рассказал. Никаких дополнительных вопросов он мне задавать не стал и поставил отлично.

Друзья, не стесняйтесь задавать вопросы преподавателю.
Например, в моем билете формулировка вроде: «дополнительно работникам начисляется надбавка в виде процента от суммы оплат от пассажиров за тот же период» означает, что такую сумму можно взять из задачи ОУ или БУ, но проще всего настроить БУ.
Правда не стоит задавать подобные вопросы, как: можно ли мне сделать отдельные документы Приходная и Расходная для ОУ и отдельные для БУ? При мне один человек задал такой вопрос, причем спросил тогда, когда от экзамена уже прошло 2 часа. 2 часа, Карл!. Читайте регламент к экзамену — там все написано!
Делайте все в одном проведении двумя независимыми кусками кода — один для ОУ, второй для БУ.

Пожалуй, в моем билете самое сложное — это задача на СПР. В БУ тоже нужно пораскинуть мозгами, чтобы настроить счета и субконто.

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

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

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

Спасибо за внимание! Успешной сдачи!

Студенческая практика показывает, что к экзаменам нужно готовиться заранее. Экзамен 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 мск.

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

Здесь рубрикатор по всем задачам сборника (страничка, где собраны ссылки на ветки форума по каждой задаче)
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: Коллеги, если у кого-нибудь есть еще какая-либо полезная информация по подготовке к экзамену и сдаче, просьба писать в комментариях, дополним статью.