Материалы курса «Подготовка к Аттестации по Платформе 8.2» — Пакет стартовых задач
Первый пакет разобранных задач по Аттестации
Это восемь задач, с которых мы предлагаем Вам начать обучение в курсе.
Почему именно эти задачи и почему именно таким «пакетом»?
Потому что в них прорабатываются все основные приемы и подходы, используемые для решения аттестационных задач — те, что будем использовать дальше, при разборе следующих.
Хотелось бы, что Вы сначала проработали именно этот пакет, от начала до конца, и только затем переходили к следующим задачам — так многое будет более понятным и узнаваемым.
Порядок работы с этим блоком:
- Нужно скачать все задачи модуля
- Обязательно попытаться решить их самостоятельно
- Просмотреть решения задач от начала до конца
- Если после просмотра остаются вопросы — задать их комментариями к этой странице
Общий объем: 10 часов 25 минут видео, в пересчете на учебные часы составляет около 14 учебных часов…
Содержание блока
- Стартовая задача № 1 (оперативный учет)
2 часа 17 минут - Стартовая задача № 2 (оперативный учет)
1 час 03 минуты - Стартовая задача № 3 (бухгалтерский учет)
1 час 12 минут - Стартовая задача № 4 (бухгалтерский учет)
1 час 12 минут - Стартовая задача № 5 (расчетные задачи)
1 час 28 минут - Стартовая задача № 6 (расчетные задачи)
1 час 14 минут - Стартовая задача № 7 (бизнес-процессы)
1 час 05 минут - Стартовая задача № 8 (бизнес-процессы + упр.формы)
55 минут
Описания задач в PDF и видео-решения находятся в архиве Стартовый пакет из 8 задач: DevAtt-Start.rar на стартовой странице.
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (1 349):
Комментарии закрыты

Здравствуйте!
Если в Бухгалтерском блоке используется документ Расходная накладная и такой же документ используется в Оперативном блоке, то обязательно ли реализовывать решение Бухгалтерского и Оперативного блока в одном документе Расходная накладная (в конфигураторе)? Просто если сделать по отдельному документу, например Расход для БУ и Расходная накладная для ОУ, тогда легче гораздо, ведь нет проблем с интеграцией решения ОУ и БУ в одном документе.
А в чем сложность реализации алгоритмов в одном документе?
Здравствуйте, Павел!
Не совсем понятно в чем принципиальная разница между БлокировкаДанных и БлокироватьДляИзменения.
Можно использовать БлокировкаДанных и обойтись без БлокироватьДляИзменения во всех случаях проведения?
Здравствуйте. Этот вопрос поднимался уже раз 15.
БлокироватьДляИзменения устанавливает блокировку В МОМЕНТ ЗАПИСИ НАБОРА ДАННЫХ. Если Вы до записи будете читать данные из регистра, то получите неверные значения «грязное чтение». По сему есть правило, если сначала читаем, а потом пишем — используем объект БлокировкаДанных, если сначала пишем (происходит запись), а потом читаем — можно использовать свойство БлокироватьДляИзменения.
Задача 4 из стартового пакета. Вопрос про измерение Валюта.
Очень интересно, если б к условию задачи добавилось что валюта в договоре не меняется, то тогда тоже нужно было б создавать измерение Валюта? Или можно субконто? или вообще тянуть ВАЛЮТУ из Субконто “Договор” ?
Спасибо!
Добавляя Валюту в измерения, мы экономим индексные поля у аналитического учета, показывая тем самым экзаменатору, что понимаем как работают на физическом уровне таблицы регистров бухгалтерии. Если добавление субконто Валюта приведет к росту максимального количества субконто, то Вам снизят балл.
Задача 1.
Не понимаю, почему при контроле остатков МоментИтогов равен Новый Граница(МоментВремени(),ВидГраницы.Включая);
А при списании стоимости МоментВремени()?
Спасибо!
вопрос снят)
Павел, добрый день.
Объясните, пожалуйста, почему в первой задаче принципиально использовать именно «границу.включая». Что будет если использовать просто «момент времени» и как увидеть разницу с другими случаями? я попробовал проводить документ продажи с «включая, исключая», после документа ввел еще один и тоже поигрался с вариантами. Разницы не заметил в проведении и в отчете.
В видео все довольно подробно разъяснено. МоментВремени в параметрах вирт таблиц «Остатки» не включает движения самого документа, а нам надо включать, вот и используем границу.
Павел, добрый день.
В задаче по оперативному учету, когда учетная политика действует год. Если её не задать вообще, то есть не завести документ об изменении учетной политики, тогда мы не будем понимать по какому алгоритму проводить списание. В этом случае наверное документ не должен проводиться. Я просто заменил соединение с ЛЕВОГО на ВНУТРЕННЕЕ, тогда мы будем точно знать, что у нас и ТЧ документа продажи что-то есть и в регистре учетной политики что-то есть и дальше будет работать разобранный вами алгоритм. Правильно ли это?
«Защиту от дурака» реализовывать на сертификации не надо.
Добрый день.
Вопрос по первой задаче: Правильно ли при контроле остатков делать одновременно записи в регистры ОстаткиТоваров и СебестоимостьТоваров, далее проверять на отрицательные остатки в ОстаткахТоваров и, если есть, отказ = истина откатит записи в обоих регистрах? Так мы запишем данные за один раз, хотя потеряем на записи в СебестоимостьТоваров при отрицательных остатках.
Насколько плохо использовать левое соединение таблицы из остатков к таблице полученной из табличной части документа вместо использования вложенного запроса?
Не правильно. Запись в 2 таблицы никогда «за один раз» не произойдет. Это будет 2 записи. Видимо Вы не понимаете принципа оперативного проведения.
Тут такое дело: на основании простейшего регистра (остатки товаров) мы принимаем решение можно ли проводить документ (в регистр остатки товаров запись уже сделана, и если что, отменим мы только ее), а последующие операции, такие как расчет себестоимости и проведение по партиям мы будем делать только в случае успешного проведения по остаткам. Второй раз записи по регистру «Остатки товаров» у нас не будет.
Здраствуйте,Павел! Никак не могу разобраться по 2-й задаче стартового пакета.
В Обработке проведения Расходной накладной для регистра накопления ОстаткиТоваров с видом «остатки» мы сначала пишем:
Движения.ОстаткиТоваров.Записывать = Истина;
Движения.ОстаткиТоваров.Очистить();
потом делаем проверку — оперативно проводится документ или нет, и если оперативно, то записываем пустые движения:
Движения.ОстаткиТоваров.Записать();
Вопрос: зачем мы делаем запись пустых движений командой Движения.ОстаткиТоваров.Записать() если у нас они уже очищены
командой Движения.ОстаткиТоваров.Очистить() ? Получается что команда Движения.ОстаткиТоваров.Очистить() не работает?
Очищен набор записей (копия данных хранящихся в базе). А в самих таблицах БД, к которой мы будем строить запрос, данные еще не очищены (не записаны).
Здравствуйте,
мучает вопрос по стартовой задаче № 1: зачем выполнять очистку записей набора
Движения.СтоимостьТоваров.Очистить();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.СтоимостьТоваров.Записать();
Иначе
МоментОстатков = МоментВремени();
КонецЕсли;
даже если документ проводиться не оперативно? Ведь итоги таблицы СтоимостьТоваров.Остатки будут получены при не оперативном проведении всё равно на начало а не по момент времени т.е. движения документа и так не будут учтены и в итоге записи будут переписаны через загрузку
РезультатЗапроса = Запрос.Выполнить();
Движения.СтоимостьТоваров.Загрузить(РезультатЗапроса.Выгрузить());
что исключит дублирование.
А Вы проверьте. При оперативном проведении остатки будут получены включая движения документа.
Вопрос именно про НЕ оперативное проведение т.е. оптимальнее следать НЕ
Движения.СтоимостьТоваров.Очистить();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.СтоимостьТоваров.Записать();
Иначе
МоментОстатков = МоментВремени();
КонецЕсли;
а
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.СтоимостьТоваров.Очистить();
Движения.СтоимостьТоваров.Записать();
Иначе
МоментОстатков = МоментВремени();
КонецЕсли;
И в чем разница?
Очистка набора внутри условия? А попробуйте на форму движения вывести, когда их чистить будете?
Сообщите, пожалуйста, Ваше видение по такому вопросу.
Задача 3.28 сборника (ред. 3), абзац 2:
«Сотрудники предприятия получают оплату по часовому тарифу. Сумма начисления по тарифу определяется как тарифная ставка, умноженная на количество фактически отработанных часов. Тарифная ставка в расчетном периоде может меняться не чаще, чем один раз в день.»
Как отнестись к последней фразе — «Тарифная ставка в расчетном периоде может меняться не чаще, чем один раз в день»?
В задаче не сказано, что расчет должен производится в зависимости от текущих данных по тарифным ставкам.
1. Стоит ли разбивать записи в регистре расчета программно в зависимости от данных регистра с тарифными ставками?
2. Или просто сделать регистр с тарифными ставками (период день) и если требуется «пользователь» сам разобъет записи в документе Начисление зарплаты, как ему нужно, установив для каждой записи свой период действия и свою тарифную ставку?
Правильнее создать регистр с тарифными ставками.
Здравствуйте. У меня вопрос Павлу по 4 задаче, где разбирается валютный учет по бухгалтерии.
В решении в регистре сведений КурсыВалют Вы создали ресурс Курс с точностью до 4 знаков. А потом в модуле документа КорректировкаЗадолженности решали проблему, которая может возникнуть из-за того, что сумма отклонения может быть меньше одной копейки. Я хотел спросить зачем это было сделано, если можно было бы не создавать себе проблем и сделать точность значения Курс в два знака? Тем более об этом ничего не говорится в условиях задачи. Поясните, пожалуйста.
А при точности в 2 знака проблема не решается, там копейка также зависнет.
4 знака — это стандарт для курсов валют, у меня механически точность устанавливается, пальцы привыкли.
Понятно, спасибо.
Задача 2.
1. Подскажите, пожалуйста, при классическом партионном списании нужно ли проверять КоличествоОстаток на равенство нулю, чтобы закрыть возможность деления на нуль?
2.Нужно ли использовать функцию «Окр» при расчете себестоимости?
Если Списать = ВыборкаДетальныеЗаписи.КоличествоОстаток Тогда
Себестоимость = ВыборкаДетальныеЗаписи.СтоимостьОстаток;
Иначе
Себестоимость = Списать / ВыборкаДетальныеЗаписи.КоличествоОстаток * ВыборкаДетальныеЗаписи.СтоимостьОстаток;
КонецЕсли;
1 Да. Это странное принципиальное требование экзаменаторов. Разбираться в причинах я уже не хочу, просто примем это как факт.
2 Нет.
Задача 2
Если Списать = ВыборкаДетальныеЗаписи.КоличествоОстаток Тогда
Себестоимость = ВыборкаДетальныеЗаписи.СтоимостьОстаток;
Иначе
Себестоимость = Списать / ВыборкаДетальныеЗаписи.КоличествоОстаток * ВыборкаДетальныеЗаписи.СтоимостьОстаток;
КонецЕсли;
Обязательно ли проверять на равенство? Если сразу расчитывать формулу? Слышал что могут возникнуть отклонениния…
Как я говорил в видео, это требование фирмы 1с. Вот информация к размышлению:
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=579267#579267
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=579252#578638
Добрый вечер! Подскажите пожалуйста, в данном случае:
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(«РегистрБухгалтерии.Хозрасчетный»);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение(«Период», Новый Диапазон(, Дата));
ЭлементБлокировки.УстановитьЗначение»Счет»,ПланыСчетов.Хозрасчетный.Товары)
Блокировка.Заблокировать();
-будут заблокированны записи с указанным счетом только в указанном диапазоне, или все записи в указанном диапазоне (с любым счетом) и все записи с указанным счетом (с любым периодом)?
Спасибо!
Заблокируются данные по указанному счету в указанном диапазоне.
Здравствуйте!
Вопрос по условию задачи 2.
В последнем абзаце сказано:
Считается, что документы задним числом не вводятся, но старые документы могут неоперативно перепроводится.
Это условие встречается во многих задачах по оперативному учету, но в видео о нем ничего не сказали.
На что именно влияет данное условие при решении задач? Т.е. какой код в процедуре проведения хотят увидеть проверяющие, при наличии такого условия?
Код, который проверят, что, данные могут вводиться не в режиме реального времени.
Я правильно понимаю, что проверка на режим проведения и есть тот код?
Если режим = РежимПроведенияДокумента.Оперативный Тогда
Доброго дня
Павел, задача 2.29 из сборника про займы сотрудникам. Есть фраза «Сотруднику не могут выдать займ, пока он не вернет предыдущий». Насколько правильно будет в обработке проведения проверять условие на задолженность только если режим = оперативный? А при неоперативном — безусловно проводить. Могут ли быть претензии к такой методике при проверке преподавателем?
Не вижу причин почему это можно признать ошибкой. Главное аргументируйте свое решение.
Павел добрый день, в прошлых курсах по Аттестации были выложены материалы «Как можно завалить сертификацию. 5 популярных ошибок, снижающих проходной балл до нуля/ В основе – ошибки, увиденные в предложенных решениях участников первого потока, плюс накопленная статистика из 4х-летнего опыта.» Можно увидеть эти материалы, нам они тоже будут полезны.
Здравствуйте.
Такой вебинар проходил только в первом потоке. В последующих потоках мы отказались от такой практики.
В 8 задаче, где разбирается работа с картинками, мы добавили реквизит формы ДанныеКартинки и элемент формы Картинка с типом Строка (элемент управления — поле картинки). И в этом элементе формы храним адрес временного хранилища или навигационную ссылку на хранилище.
Зачем все так сложно? Или по другому нельзя?
Система не позволяет с хранилищем работать как с обычной переменной? То есть поменяли например картинку, но сохранять не стали и в объекте осталась сохраненной старая картинка?
Спасибо :-)
На все Ваши вопросы я рекомендую просто попробовать ;)
По секрету:
По другому я не умею
Как с обычной переменной — а нам не переменная нужна а реквизит объекта, и да не умеет.
Сохраненной останется старая картинка.
Павел, добрый день!
У меня вопрос по 8 задаче, где мы разрабатывали подбор для документа продажи. В этой форме подбора вверху динамический список (основная таблица справочник Номенклатура), к нему произвольным запросом добавили остатки из регистра.
Но при перетаскивании в нижнюю ТЧ (у нас это таблица значений) в параметре процедуры ПараметрПеретаскивания — массив элементов справочника Номенклатура. А количества нет. А как все таки сделать, чтоб и количество тоже было? Какие есть варианты?
Если вместо динамического списка ипользовать таблицу значений, то в параметрах будут все данные строки. Но будет ли расцениваться как ошибка использование ТЗ вместо ДС в пятом задании?
Зачем ТЗ? Как ее заполнять будете? Запросом? Запросом! Так зачем ТЗ если все тоже можно сделать специально предназначенным объектом ДС.
А какое количество хочет перетащить пользователь?
Остаток? Тогда надо описать событие «НачалоПеретаскивания». Но это за рамками сертификации.
Спасибо! Вообщем понял, что приведенного примера достаточно на экзамене)
Задача 1.5 Переход с метода списания По средней на FIFO LIFO и наоборот. Павел — подскажите правильное направление — куда рыть то . Партии — либо есть — либо нету. Если они были — и потереть их не проблема, но если их потерли, как потом при переходе обратно к партионному учету — восстановить ?
Хотелось бы услышать зачетный ответ для принимающих сертификацию.
При переходе обратно к партионному учету необходимо партию сформировать. Это будет первая партия, ссылка на документ «Изменение учетной политики». «Восстанавливать» партии старые не нужно.
Вопрос по первой задаче:
Почему в запросе:
ВЫБРАТЬ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество * РасходнаяНакладнаяСписокНоменклатуры.Коэффициент) КАК Количество,
&Склад,
&Период,
&ВидДвижения
ПОМЕСТИТЬ ДокТЧ
….
при создании временной таблицы ДокТЧ не проиндексированно поле «Номенклатура»? Ведь дальше по коду мы соединяем эту таблицу с регистром накопления.
На сколько я понял, индексировать нужно обязательно если предполагается соединять созданную таблицу для более быстрого соединения.
Ну про обязательно, я ничего не скажу, но то что соединение по проиндексированным полям будет заметно быстрее — это да.
Здравствуйте, Павел.
Если я запись в регистр накопления накопления сделаю так:
Движения.ОстаткиНоменклатуры.Загрузить(Запрос.Выполнить().Выгрузить());
Движения.Записать();
а не так:
Результат = Запрос.Выполнить();
Движения.ОстаткиНоменклатуры.Загрузить(Результат.Выгрузить());
Движения.Записать();
Будет ли это корректно?
Не вижу разницы в вариантах. Можно еще пару переменных добавить.
Задачи — связанные со списание по партиям.
Павел, обязательно ли делать документ для смены учетной политики на экзамене, если этого не оговорено. Можно ли этого не делать — но тогда придется держать действующую учетную политику на данный момент в документе — так же как с курсом валюты или коэффициентами товаров ?
Тут прокомментировать нечего. Вы правы. Вместо «?» поставьте «!».
Но на экзамене есть критерий «время решения», подумайте как Вам будет быстрее решить задачу.
Будет ли легкое решение — правка регистра — расцениваться как неустойчивым поведением системы ?
Да к этому не придираются.
Павел, у меня вопрос по поводу 6 задачки.
Текст задания:
«Если в течение недели сотрудник отработал времени больше, чем ему было положено по норме,
то за каждый час переработки выплачивается премия 100 рублей. Норма часов в неделю одна для
всех сотрудников. Ее значение должно храниться в информационной базе.»
Что предполагается под нормой? В решении мы просто норму задавали числом или константой тоже можно. Но не хотят ли в 1с, чтобы создавались норма как график работы и факт как табель?
Норма — некое число, сохраняемое в ИБ. Если Норма периодически изменяется, то она хранится в РС, если нет, то в константах.
Добрый вечер, Павел!
Вопрос по механизму расчета себестоимости в первой задаче «пакета стартовых задач»: почему после запроса мы, при условии оперативного проведения, пишем «Движения.СтоимостьТоваров.Записать();»? Почему именно в тот момент и только при оперативном проведении должны очиститься движения документа по регистру? Заранее благодарен!
Добрый время суток!
Чтобы при получении оперативных итогов не получать остатки с учетом старых движений, которые могли быть, если документ проведен был ранее.
Там, кстати, еще надо блокировку установить перед записью «Блокировать для изменения».
А при получении «не оперативных итогов» не может возникнуть аналогичная ситуация, когда мы получим остатки с учетом старых движений документа? Как в ситуации, которую описывал aricsoft ранее, а именно: «Допустим сегодня 7 число. Документ был проведен 1 числа. Пользователь проводит этот же документ 2м числом. Разве документ не прочитает свои же движения из базы ?»
Так мы там получаем остатки НА момент проведения документа, что не затрагивает сами движения.
В реальной жизни надо либо запретить менять дату документа без отмены проведения, либо удалять при перепроведении все движения. Но у нас не реальная задача, а сертификация, где надо аргументировать свое решение.
Павел, добрый день. Не очень понятно в контексте перерасчетов разница, если мы будем переходящую неделю регистрировать одним документом или двумя(разные периоды регистрации). Не могли бы вы вкратце еще раз объяснить.
Если одним, то ПД новой недели не будет совпадать с ПР. Следовательно, как только мы в новой неделе сто то вытесним документ попадет в таблицу перерасчета. При перерасчете будут зарегистрированы изменения в записи как старой так и новой неделях, следовательно при изменении старой недели возможно будет изменена база для расчета записей в новой неделе и так по кругу.
Павел, добрый день. Вопрос по 5 задаче. Кусок задания:
«Сотрудники предприятия получают оплату по окладу пропорционально отработанному времени в
днях. Дневная ставка рассчитывается как начальное значение оклада, деленное на количество
рабочих дней в том же периоде, что и фактически отработанные дни.
В случае болезни сотрудник получает пособие, размер которого определяется как количество
часов болезни умноженное на среднюю часовую ставку. Часы болезни рассчитываются по
пятидневному графику. Средняя часовая ставка определяется как сумма начисленного оклада за
два предыдущих месяца оклада, поделенная на количество отработанных часов в двух
предыдущих месяцах. В случае получения сотрудником пособия начисление по окладу не
производится.»
В решении больничный рассчитывается по дням, хотя в задании сказано четко, что расчет по часам. Надо ли вводить еще один ресурс (часы) в производственный календарь ?
Да, если надо «по часам», то в регистре сведений нужны дополнительно еще и часы.
В следующей задаче Павел подробно разъясняет по часам (там как раз тоже задачка с часами)
Такой вопрос по расчетной задачке №5:
Зачем мы в параметрах виртуальной таблицы указывали измерения?
РегистрРасчета.ОсновныеНачисления.БазаОсновныеНачисления(&Измерения, &Измерения, , Регистратор = &Регистратор) КАК База
…
МассивИзмерений = Новый Массив(2);
МассивИзмерений[0] = «Сотрудник»;
МассивИзмерений[1] = «Подразделение»;
Запрос.УстановитьПараметр(«Измерения», МассивИзмерений);
Запрос.УстановитьПараметр(«Регистратор», Регистратор);
Это является обязательным?
Попробуйте их не указать… Обязательны? Что пишет синтаксис-помощник?
http://gyazo.com/fdb4d27c2f115be220e641f58fe31039
http://gyazo.com/c50872ca58bf3ba1bfdc08cc65cba8ea
Это отбор по измерениям.
Спасибо, Павел :-)
Добрый день, Павел!
Тут как-то задавали вопрос, насчет того, не изменились ли требования сертификации в отношении того, что можно решать задачи на пустой базе, а не на каркасной. Вы хотели уточнить у коллег…
«Когда мы записывали курс в требованиях явно было написано “на каркасной или пустой”. Сейчас мне нужно уточнить у коллег. Вопрос оставляю открытым.»
Так что там, можно ли делать задания на пустой базе? Есть определенность?
Вроде я ответил там же…
Да, можно использовать пустую конфигурацию.
Фирма 1С, в лице Бахаревой Натальи, нам официально это подтвердили.
Добрый день Павел!
В некоторых видеолекциях, как мне кажется, вы использовали момент итогов
МоментИтогов=новый Граница(МоментВремени(),Видграницы.Включая)
Когда это необходимо использовать?
Добрый день.
Когда нужно чтобы движения проводимого документа попали в рассчитанные остатки.
Доброго дня Вам Павел!
Полагаю что в «видео решении» и в Базе Данных задачи №3 ошибка.
Документ «Расходная накладная» не корректно проводиться —
Дт «Покупатели»
Кт «Прибыли и убытки»,т.к. сумма проводки не соответствует сумме документа.
Ошибку можно диагностировать следующим образом: добавить несколько разных товаров в табличную часть документа «Расходная накладная»
Моё решение: Не добавлять «ВыборкаИтоги» и сумму в запрос, а сделать так:
//+
Движение.Сумма = ЭтотОбъект.ТабличнаяЧасть.Итог(«Сумма»);
//-
С уважением, Евгений Мелихофф
Задачу сегодня вечером подниму, проверю.
Павел, добрый день. Вопрос по 3 задачи. Кусок текста задачи:
«Документ «Расходная накладная» реализует следующие проводки:
Дт «Прибыли и убытки» — Кт «Товары» на количество и сумму себестоимости;
Дт «Покупатели» — Кт «Прибыли и убытки» на сумму в продажных ценах»
Нужно было на каком-то счете отразить сумму в продажных ценах в разрезе номенклатуры и складов. В решении это было сделано на счете «Прибыли и убытки». Правильно ли я понимаю,что на счет «Покупатели» так-же мог добавить оборотные субконто номенклатура и склад и для отчета уже получать данные с него ?
Добрый день!
Нет, на счете «Покупатели» мы видим выручку от покупателей. Это не обороты по продажной стоимости, это не товары по самому смыслу бухучета. А если договорились о скидке, а если еще доставку в сумму счета включили?
Павел, спасибо за ответ. Т.е. если я отражу на счете «Покупатели» обороты по номенклатуре и складу, это будет считаться ошибкой ? Просто для меня совсем не очевидно, что аналитика должна быть именно на счете Прибыли и убытки.
Да, это будет ошибка.
Задача 1.
1 Продажа товаров. Проведение.
Сначала записываются и проверяются данные в регистр ОстаткиТоваров, и только потом блокируется регистр СтоимостьТоваров. Правильно ли это. Разве за это время регистр СтоимостьТоваров не может измениться другим пользователем документом Поступление товаров. (Мне кажется надо сначала заблокировать оба регистра).
2 Следующий код
Движения.СтоимостьТоваров.Очистить();
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.СтоимостьТоваров.Записать();
Иначе
МоментИтогов = МоментВремени();
КонецЕсли;
Допустим сегодня 7 число. Документ был проведен 1 числа. Пользователь проводит этот же документ 2м числом. Разве документ не прочитает свои же движения из базы ? Мне кажется что эту ситуацию надо тоже отслеживать или з
Движения.СтоимостьТоваров.Очистить();
Движения.СтоимостьТоваров.Записать();
1. Зачем его блокировать? Мы может вообще не дойдем до записи движений в этот регистр.
2. Соглашусь с Вашими выводами. Задачу подниму в выходные и проверю.
1. Если не заблокировать — то в момент чтения остатков , другой пользователь мог сделать изменения в регистре Стоимости товаров. Как результат — несоответствие данных регистра остатков и регистра стоимости.
В этом случае наша блокировка не установится перед чтением данных.
Поступление товаров — не блокирует эти 2 регистра, но изменяет их состояние. Именно поэтому возможна ситуация несинхронных данных в этих 2х регистрах на момент работы документа Продажа Товаров.
Как можно ввести документ «Поступление», если мы заблокировали «Остатки»?
Ну и при поступлении блокировка устанавливается в транзакции записи данных. То есть параллельно ввести документы поступление и продажа мы не сможем, они однозначно в транзакционную очередь встанут. А вот ввести два поступления параллельно можно, если у регистра будет разрешено разделение итогов.
Вопросы сюда писать или на почту?
Вопрос по задачи №1.
При записи в регистр «Стоимость товаров» мы проверяем на режим проведения:
Движения.СтоимостьТоваров.Записать();
Иначе
Период = МоментВремени();
КонецЕсли;
Запрос.УстановитьПараметр("Период", Период);
Результат = Запрос.Выполнить();
Движения.СтоимостьТоваров.Загрузить(Результат.Выгрузить());
Движения.СтоимостьТоваров.Записывать = Истина;
Если режим оперативный, то не получится ли, что мы дважды записываем: первый раз методом Записать() и второй раз после завершения процедуры?
Первый раз мы записываем пустой набор записей, дабы исключить из результата запроса свои же движения.
В режиме отладки постоянно наблюдается ошибка:Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
по причине:
Ошибка SDBL:
В схеме базы данных нет таблицы с именем AccumRgOpt
Невозможно ни сформировать отчет, ни провести документы. Что делать?
Вариантов я вижу 2:
1. Порушилась база. Поможет восстановление из бекапа.
2. Старая платформа. Обновитесь. Бесплатно учебную версию можно скачать тут: http://1c-dn.com/downloads/1c_enterprise_platform_8_training_version/
Спасибо, после обновления платформы все заработало.
Обратил внимание, что для счет «Прибыли и убытки» вы не указываете субконто. Так и нужно? Только сумма? Если например в проводке еще участвует счет «Покупатели» с субконто «Контрагент» и «Договор контрагента».
Поясните цель добавления субконто. Что конкретно Вы хотите получить от указания субкотно?
Ну просто счет вообще без субконто… Только сумма. Или ничего в этом нет?
На мой взгляд — все в порядке, я и хочу у Вас узнать зачем Вам субконто? :)
Вопрос по задаче второго занятия, блокировку на регистр ОстаткиТоваров устанавливаете после выполнения запроса по остаткам. Это правильно?
Вопрос не корректный, прошу прщения
Запрос по остаткам, во второй задаче, выполняется после блокировки.
// ПОЖАЛУЙСТА, задавая вопросы, принимайте во внимание, что я не помню решения всех задач наизусть и тексты их тоже. Пожалуйста задавайте вопросы в максимально развернутом виде. Спасибо большое.
Доброго времени суток!
Где можно скачать выгрузку задачи №3, соответствующую видео решению? Та, что имеется — не соответствует.
Еще непонятные моменты. В условии сказано (речь идет о документе Перемещение):
1.в шапке указываются склад правитель и склад получатель, а в табличной части перемещаемый товар и его количество
2.на склад получатель товар приходит с партией, которой является текущий документ перемещения товаров
В условии Док-та Реализация сказано:
1.Себестоимость товара рассчитывается в разрезе партий поступления этого товара на склад, с которого происходит списание
Вопрос: Как Рассчитать себестоимость товара при реализации, если партией может оказаться документ Перемещение с известным количеством и неизвестной СуммойОстатком (т.к. при перемещении со склада на склад указывается только номенклатура и количество)
Спасибо, разобрался )))
Здравствуйте, Руслан. Вопрос еще открыт? Саппорт ответил?
И еще вопрос. В форме выбора договоров пользователь может снять отбор по владельцу и выбрать договор другого контрагента, это не будет считаться ошибкой ?
Искусство разработки «защиты от дурака» на экзамене не проверяют.
Павел, добрый день.
Вопросы по 4 видео:
1)Правильно ли я понимаю, что ресурс «Курс» РС «Курсы» я могу сделать с точностью до 2 знаков, и это не будет ошибкой ?
2)Правильно ли я понимаю, что не обязан делать автоподстановку валюты, при выборе договора в документе «Расходная накладная», т.е. раз этого нет в задании, могу смело считать это проблемой пользователя ?
3)Надо ли при выборе остатков по счету в документе «Корректировка задолженности» указывать не момент времени в периоде, а границу, чтобы получить данные включая дату документа ?
4)Можно ли не заворачиваться универсальностью, а лепить проводки как указано в задании ?
5)Мб я ошибаюсь, но в документе «Корректировка задолженности» нужна блокировка по счету, т.к. в один момент времени теоретически может проводиться два документа и будет задвоение ?
6) Надо ли в документе «Операция» что-то дополнительно делать ? Очищать записи при пометке на удаление например ?
В 4 вопросе не «заворачиваться», а заморачиваться, конец трудового дня дает о себе знать =)
3 вопрос снимается, границу указывать не нужно.
Я отвечу обобщенно:
В задании указано что нужно это делать? Нет. Не тратьте время на ерунду. В реальной практике оно конечно правильно, но на аттестационном экзамене Вам это не прибавит баллов.
Павел, спасибо за ответы. А блокировка нужна или нет ?)
У меня сейчас материалов на руках нет. Сошлитесь на задачу любым способом, что бы было понятно о чем речь, я отвечу предметно.
В общем: Если есть возможность конкуренции у пользователей за получение данных по одному и тому же показателю, то да — блокировка нужна.
Павел, добрый день.
Вопросы по 3 видео.
1) У Евгения часть алгоритмов вынесено в общий модуль. Будет ли поводом для снижения оценки, если для каждого документа я буду писать алгоритмы проведения в модуле объекта ? Просто мне так проще будет отлаживать решение.
2) Можно ли считать что порядок и список субконто для счета мне известен заранее, т.е. обязательно ли накладывать ограничения на набор и порядок субконто в таблицах запроса ?
Все вопросы задаю в контексте снизят/ не снизят оценку, т.е. если что-то можно упростить или сделать как мне удобнее, я только за =)
Добрый %время суток%!
1. Нет не снизят. Общий модуль удобно использовать при одинаковой работе алгоритмов разных документов или отчетов. В 8.0/1 было «поверье» что общие модули выполняются на сервере при наличии галочки. В 8.2/3 модули объектов однозначно выполняются на сервере. Так что в производительности и архитектурном планировании, на мой взгляд, разницы нет.
2. Я рекомендую. Тут даже дело не в оценке, что такое значение субконто? Это неопределенного типа значение, накладывая отбор Вы его конкретизируете и не даете парсеру запросов строить соединения с лишними таблицами.
Спасибо.
Подскажите, чем отличается таблица «Обороты» от «ОборотыДтКт» в регистре бухгалтерии?
«Те же зайцы только в профиль».
Обороты: Выбираем счет, видим корресподненции с ним и ДТ и КТ.
ОборотыДтКт: Выбираем СчетДт и видим корреспонденции с ним по КТ.
Для удобства построения отчетов.
Карточка счета — Обороты
Сводные проводки — ОборотыДтКт
Создал в 2 документах обработчикя проведения
В одном он почему-то:
ОбработкаПроведения(Отказ, Режим)
А в другом:
ОбработкаПроведения(Отказ, РежимПроведения)
Почему названия режима разные? Глюк 1С?
Настройки проведения разные или свойства конфигураций «Основной режим запуска». Но, собственно, какая разница как будет названа переменная принимающая аргумент функции, хоть (X, Y)?!
Задача 3:
Когда формировали движения у Расходной накладной:
1. Дт «Прибыли и убытки» — Кт «Товары» на сумму себестоимости
2. Дт «Покупатели» — Кт «Прибыли и убытки»
Интересует заполнение субконто для счета «Прибыли и убытки»:
Для первой проводки субконто не заполняли (в этом случае это субконто Дт), а для второй субконто заполняли (в этом случае это субконто Кт), хотя счет ведь один и тот же…
В чем здесь смысл? Субконто же должны быть одинаково заполнены для одного счета? То есть правильно было заполнять во втором случае субконто Дт?
На видео это видно на 0:44:32
«То есть правильно было заполнять во втором случае субконто Дт?» — имел ввиду «в первой проводке»
Сейчас не могу посмотреть видео, но должно быть так:
При формировании проводки Дт Прибыли Кт Товары, у счета Прибыли нужно заполнять субконто в том случае, если нужно отследить обороты по списанию себестоимости в каком либо разрезе. Так как в задаче нет необходимости в отслеживании разрезов по себестоимости, то и субконто мы не заполняем.
Вопрос по формированию проводок в регистре бухгалтерии: почему для количества Поле в проводке называется «КоличествоКт», а для Суммы просто «Сумма» (Без Дт и Кт)?
Один ресурс балансовый (единое поле и для дебете и для кредита), а второй нет (допускается разное значение для дебета и кредита).
Подтяните знания по бухгалтерской части перед сдачей экзамена.
Спасибо :-)
И еще вопрос по второй задаче) Надо ли при расчете себестоимости при списании по партиям округлять с точностью до 2 знаков ?
Зачем? При записи ресурса система округлит все сама, а «проблему последней копейки» мы решили.
Павел, добрый день.
Три вопроса:
1) Во второй задачи надо ли делать проверку, что у нас есть вообще какой-нибудь метод списания ?
2) Обязательно ли использовать запрос при получении метода списания, если я его получу через объектную модель, будет ли это ошибкой ? И вообще будут ли придираться, если я простые вещи типа коэффициента из первой задачи, буду получать объектной моделью ?
3) Не будут ли придираться при разработке на пустой конфигурации, в требованиях указано что экзамен сдается на каркасной конфигурации ?
1. Всю «защиту от дурака» сделать не получится. Не заостряйте на этом внимание. Сделаете — хорошо, не сделаете — не это проверяют на экзамене.
2. Необязательно, но крайне желательно.
3. Когда мы записывали курс в требованиях явно было написано «на каркасной или пустой». Сейчас мне нужно уточнить у коллег. Вопрос оставляю открытым.
Есть два вопроса по поводу построения отчетов:
1. При создании отчетов многие вещи можно сделать в самом запросе (например, соединение таблиц, расчет полей). Есть ли какое-то указание со стороны 1с, что это должно быть сделано в СКД (например, связывание источников данных и расчет вычисляемых полей средствами самой СКД, а не в запросе)?
Спрашиваю потому, что за долгое время привык пользоваться Вашей консолью запросов: сначала формировать источник данных со всеми связями в консоли и смотреть, какие данные получаются, а потом уже создавать источник данных в СКД.
2. Необходимо ли в запросах указывать параметры виртуальной таблицы? Ведь СКД их автоматически добавляет в параметры, даже если в запросе их не указывать?
1. Тут все просто, то что мы указываем в запросе обрабатывается на SQL сервере, а все что мы добавляем средствами СКД — на сервере 1С. Если нам нужна производительность, то лучше все описать запросом, если гибкость с отборами, разными источниками — на сервере 1С. На сертификации достаточно ответить на вопрос «почему вы сделали так?».
2. СКД добавляет только отбор по периоду, все остальное надо описывать самостоятельно.
Спасибо)
1. Скажите в чем более гибкость с отборами? если я на уровне запроса могу отборы описать.
2. В чем гибкость с источниками — и вообще зачем это нужно, если можно все в одном запросе получить и соединить?
====
PS: тем более, что запросом быстрее все отрабатывает чем СКДю
Это не к теме нашего курса, но я поясню. К примеру есть отчет в котором пользователь может сам выбрать какие колонки (показатели) он хочет видеть. Если делать получение данных запросом то все показатели, даже если они из разных источников, мы будем получать однозначно. Если это же делать СКД, то запрос будет построен только к тем источникам, чьи показатели выбрал пользователь.
Примерно то же и с отборами, в запросе мы жестко задаем возможные отборы, а в СКД можно сделать отборы необязательными.
Но за гибкость приходится платить, СКД обрабатывает результат скульного запроса, то есть это доп обработка, доп затраты, но они бывают оправданы.
Спасибо за полный ответ.
По п.2. То есть если период виртуальной таблицы в самом запросе не укажу, а укажу в СКД это не будет ошибкой? (или же СКД сначала выполнит запрос за весь период и потом надолит уже отбор и это будет неоптимально?)
Нет, при указании значений параметров они будут переданы СКЛ серверу и выборка будет сформирована только за указанный период.
Задача 2
1. Зачем нам дублировать ресурс Себестоимость в двух регистрах? Ведь вроде бы обсуждали, что лучше разнести показатели (один показатель — один регистр)? Понимаю, что так нам будет проще построить отчет…
2. Нужно ли добавлять Партию в регистр с продажами? (не снимут ли за это бал, если не добавить, мол придерутся, а если нам нужен анализ продаж по партиям?)
По п.1: также в отчете по продажам не вывели количество, потому как его нет в регистре по продажам… То есть получается общий такой вопрос: как лучше делать? Количество и там и там, но в одном регистре продажи, а в другом себестоимость?
Если нужно количество продаж, то его следует добавить в регистр с продажами.
1. Себестоимость остатков и себестоимость продаж — это разные вещи. Остатки могут уйти и не на продажу.
2. Нет не нужно. В задаче анализ продаж по партиям не требуется.
Спасибо
Задача 1
1. В задании сказано про услуги, в решении про них ничего нет… Для них же наверное нет смысла хранить остатки в регистре в количественном выражении
и проверять на неотрицательность при списании?
2. В регистре с остатками нужно ли как-то хранить информацию по характеристикам?
3. В реализации механизма характеристик справочник Характеристики подчинен ПВХ, а в типовых конфигурациях он подчинен спр. Номенклатура? Как все-таки
правильнее?
4. Если в СКД в конструкторе запроса в параметре виртуальной таблицы оборотов и остатков указываю необязательный параметр {Склад = &Склад} как в вашем видеоуроке, при сохранении запроса конструктор его не сохраняет. Этот механизм сейчас не работает?
На первые три вопроса уже ответили ранее (у меня почему-то перестал отображаться мой пост).
1. Смотрите другие комментарии. Нет смысла хранить «Остатки» услуг нет.
2. Нет. Нам не нужно по условию задачи хранить варианты номенклатуры с разными характеристиками. Просто нужно иметь возможность описывать характеристики одной номенклатурной позиции.
3. См выше.
4. Конструктор запросов не все умеет. К сожалению.
Спасибо)
Задача 1
1. В задании сказано про услуги, в решении про них ничего нет… Для них же наверное нет смысла хранить остатки в регистре в количественном выражении
и проверять на неотрицательность при списании?
2. В регистре с остатками нужно ли как-то хранить информацию по характеристикам (сейчас получается для одного элемента есть только один определенный набор свойств)?
3. В реализации механизма характеристик справочник Характеристики подчинен ПВХ, а в типовых конфигурациях он подчинен спр. Номенклатура? Как все-таки
правильнее?
Приветствую!
1. Конечно, услуги в остатках не храним, при получении остатков в запросе добавляем условие «И НЕ УСЛУГА». С посчитал это очевидным.
2. У нас задача не варианты номенклатуры хранить (!), а просто добавить возможность описания свойств одного товара. То бишь монитор, черный, асус, 17 дюймов.
3. См выше, мы не хотим хранить набор как уникальную номенклатуру.
Спасибо, Павел.