Материалы курса «Подготовка к Аттестации по Платформе 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):
Комментарии закрыты

Павел,Здравствуйте.В задачах по бизнес процессам с условием, вы в своих решениях добавляете реквизит с типом булево в бизнес процесс. Вопрос такой: а правильно ли добавлять данный реквизит в бизнес процесс или нужно добавлять в задачу? Так как логичней добавить в задачу. Пример с задачей 4.8 из сборника. Первая задача, это новый проект. И данный руководитель проекта может только определить условие( сложный это проект или нет). Что скажете,Павел? Или для сдачи экзамена не принципиально,где добавлять реквизит,в задаче или бизнес процессе!?
Задача — это действие. Одно.
Реквизит, который мы добавляли в БП — это его (БП) свойство. Это не свойство задачи.
В разборе второй задачи почему режим записи учетной политики сделан ч/з подчинение регистратору, а не независимый?
Для возможных последовательностей. Иначе как мы выполним требование, что конфигурация должна функционировать и при вводе данных вперед и назад одинаково?
Невнимательно прочитал задание, спасибо.
Добрый день,
Стартовая задача № 4 (бухгалтерский учет): В обработке проведения документа «Корректировка долга» нет блокировок.
Вы писали: «GROOVY 04.09.2015 Поставьте максимум фильтров для блокировки. На счет, на субконто.»
каким образом можно поставить блокировку на субконто, если данные еще не прочитаны?
Используя объект «БлокировкаДанных».
Блокировку на счет мы можем установить
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(«РегистрБухгалтерии.Хозрасчетный»);
ЭлементБлокировки.УстановитьЗначение(«Счет»,ПланыСчетов.Хозрасчетный.Покупатели);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Как установить на субконто, если мы не знаем по каким контрагентам и договорам будем делать корректировку
Зачем тогда ее устанавливать? Блокируйте весь счет.
1) Павел в 5 задаче в соединении вы указываете только номер строки, не оптимальней ли использовать регистратор+номер строки ? При таком условии будет задействован индекс регистра, который создается по умолчанию.
2) нужно ли проверять записи на Активность=Истина ?
3) Нужно ли в запросе при соединении с виртуальными таблицами регистров выгружать их во временные таблицы и затем уже временные соединять с физическими как это рекомендуется в литературе по оптимизации запросов 1с
4) В каркасной у некоторых справочников и ПВХ стоит режим управления блокировкой Автоматический, надо ли ставить у всех объектов режим управляемый или хватит только у конфигурации документов и регистров ?
5) При решении билетов на аттестации требуют, что бы все задачи ОУ и БУ если документы схожи типа приходная накладная там и тут делать все в одном объекте, но на практике задачи бывают настолько несовместимые по проведению, что не понимаешь как в одной процедуре их уместить. Можно ли для документа ввести 2 реквизита ПроведениеОперативныйУчет, ПроведениеБухгалтерскийУчет и при проведении делать так:
Если ПроведениеОперативныйУчет Тогда
ОбработкаПроведенияОУ(Отказ, РежимПроведения);
КонецЕсли;
Если ПроведениеБухгалтерскийУчет Тогда
ОбработкаПроведенияБУ(Отказ, РежимПроведения);
КонецЕсли;
КонецПроцедуры
1. Это не экзамен на эксперта по тех.вопросам.
2. С точки зрения здравого смысла, наверно не надо. Никогда не думал об этом.
3. См. 1.
4. Блокировка настраиваемая влияет на чтение данных. Для справочников и документов — это не критично. Проще у всей конфигурации настроить управляемый режим.
5. Я не против. Если время останется, можно попытаться оптимизировать код.
Добрый день.
Возвращаясь к вопросу Vasterpiece по стартовой задаче № 3: зачем создавали документ «Операция»…
Прочитал требования к экзамену по платформе 8.3, там ничего не сказано про необходимость создания этого документа, кроме примерной задачи по бухучету.
Если Вы считаете, что этот документ создавать не стоит, то можете не создавать его.
Здравствуйте.
1. Нужно ли отключать в свойствах конфигурации режим использования модальности ?
2. Вопрос к первой задаче. Как я понимаю в задаче не указано организовать подстановку коэффициента в форме документа, по сути это можно не делать ? Спрашиваю для того чтоб такие мелочи отложить на потом если будет время, будет ли это считаться ошибкой ?
3. Приемлемо ли на экзамене делать так:
...
КонецЕсли;
или же лучше запросом читать, как на это смотрит принимающая сторона ?
4. Во многих задачах установку момента времени при проведении по партиям в ОУ пишут так:
у Вас же вместо неопеределено Вы пишите никакую дату, просто мне кажется как написано в примере выглядит более эстетичней, как делать?
5. При заполнении набора записей что лучше использовать
или обход выгрузки ? Ведь если результат запроса содержит более 1000 строк как это скажется на производительности ?
6. Павел у Вас на форуме пишут:
«Правильная организация процедуры ПередЗаписью документа РучнаяОперация, который необходимо реализовывать в любой задаче по бухгалтерскому учету.»
Проводки = Движения.Управленческий;
Проводки.Записывать = Истина;
Если НЕ Проводки.Модифицированность() И НЕ ЭтоНовый() Тогда
Проводки.Прочитать();
КонецЕсли;
Для каждого Проводка Из Проводки Цикл
Проводка.Период = Дата;
Если НЕ ЭтоНовый() И ПометкаУдаления <> Ссылка.ПометкаУдаления Тогда
Проводка.Активность = НЕ ПометкаУдаления;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
стоит ли так делать или же оставить модуль пустым как у Вас в примерах?
7. Не нашел задачи по сборке — разборке, они не попадаются в билетах ?
1. Нет.
2. Не будет ошибкой.
3. В любом случае это будет запрос. Главное чтобы не в цикле.
4. Без разницы.
5. Если без промежуточной ТЗ — то быстрее загрузкой чем обходом. На сертификации значения не имеет.
6. Надо. Но это мелочи.
7. Нет.
Павел спасибо, кратко и по теме )))
Здравствуйте Павел! По первой стартовой задаче вопрос. При неоперативном проведении документа «ПродажиТоваров» не удается считывание остатков из регистра при проверке остатков на ту же секунду что и проведение «ПоступленияТоваров». И вроде бы Границу прописываю с ВидомГраницы.Включая как вы и описываете. Но все равно не дает провести той же секундой той же даты. Стоит секунду добавить в «ПродажиТоваров» и все работает. Базу создаю с нуля. В вашей базе с решением проводится все четко. В своей же неоднократно прописывая код даже сверяя построчно с вашим кодом, и хоть убей ничего не получается.Скажите пожалуйста, может я какие ошибки типичные делаю при создании объектов конфигурации?
Секунда тут ни при чем, тут надо смотреть кто из них позже по моменту времени.
Здравствуйте,Павел. У вас нет ни одной разобранной задачи по расчетным механизмам по заполнению табеля. Может быть обрисуете план механизма табеля для расчетных задач или дадите ссылку на данную информацию?
Приветствую. Табель разбирается в доп материалах от Евгения.
Общий смысл задач с табелем такой: Данные табеля (отработанные дни или часы) пишутся в регистр накопления оборотов. Никаких графиков и вытеснений в задачах нет. После того как отражены данные графика вводится документ «НачислениеЗарплаты», который вводит в регистр расчета начисление по табелю. При расчете начисления запросом получаются обороты из регистра накопления.
Прошу приостановить действие моего токена.
Доброго дня, Виталий!
Активация вашего токена отменена. Для продолжения обучения вам необходимо будет заново активировать токен.
Я понимаю,что выполнение «Помимо продажи товара, могут оказываться дополнительные услуги, например по
доставке. И услуги и товары указываются в одной табличной части» простое.Но всё таки хотелось бы хотя бы один вариант решения увидить,чтобы быть уверенным в правильном и оптимизированном решении.К тому же я как понимаю услуги значит не учитываются в регистрах остатках,а из за этого основной алгоритм всё таки будет изменен.
Приветствую.
Если есть неуверенность в таких решениях, я советую пройти доп курс. Курс по подготовке к аттестации предполагает довольно хорошую базовую подготовку.
Услуги не отражаются в себестоимости, не списываются с остатков и не приходуются. Достигается это одним условием в запросе «ГДЕ НЕ Товар.Услуга».
В продажах услуги отражаются с нулевой себестоимостью.
Здравствуйте! За расчетный период и в расчетном периоде, в чем различие? Это относится к настройке плана видов расчета где выставляется зависимость от базы «По периоду регистрации», «По периоду действия»?
Вполне возможно. Но лучше себе шаблон не создавать, а внимательно вникать в полный текст задачи.
Здравствуйте. Еще несколько вопросов:
1. В оперативном учете при проведении документа ПТУ, как правильней группировать одинаковые строки ТЧ? Делать запрос к ТЧ документа и там ставить группировку а затем движения? или можно просто методов Свернуть() табличную часть на одинаковые строки а потом делать движения по регистрам без запроса?
У ТЧ документов нет метода «Свернуть», Вы будете создавать копию ТЧ в ТЗ, что не эффективно.
Здравствуйте,Павел. В 5 задаче по расчетным механизмам вы ставите для предопределенных видов расчетов ведущие признаки, хотя перерасчеты не используете! Обязательно ли ставить данные флаги в данной закладке,если не используется механизм перерасчетов!?
2. Обязательно ли помещать процедуру расчета в общий модуль или можно поместить ее в модуль документа?
1. Меня коробит, когда все зависимости не указаны. Можно или нет — не знаю, думаю много времени эти галочки не занимают.
2. Обязательно.
Добрый день!
Стартовая задача № 4 (бухгалтерский учет):
1) В обработке проведения документа «Корректировка долга» нет блокировок.
Вопрос: Каким образом можно корректно их установить, если этот документ все данные получает из регистра бухгалтерии? Будет ли такая блокировка правильной(перед чтением данных)?
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = «РегистрБухгалтерии.Хозрасчетный»;
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
2)(Вопрос, скорее, общий и к этой задаче не относится)При решении билета, в задачах по бух. и опер. учету, контроль остатков необходимо осуществлять для каждого регистра (бухгалтерии и накопления) отдельно, или будет достаточно контроля остатков по регистру накопления?
В большинстве задач нет блокировок. Это в анонсе написано. Одно и тоже не показываем.
Поставьте максимум фильтров для блокировки. На счет, на субконто.
2. Для всех независимо друг от друга.
Добрый день!
Стартовая задача № 3 (бухгалтерский учет):
1)Зачем вы создавали документ «Операция»?
2)Почему в регистре бухгалтерии «Управленческий» у вас не установлена галочка «Разрешить разделение итогов», ведь установка данной галочки существенно повысит параллельность проведения приходной накладной?
3) Запрос.Текст =
«ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Количество,
| Товары.Сумма
|ПОМЕСТИТЬ СписокНоменклатуры
|ИЗ
| &СписокНоменклатуры КАК Товары
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| СУММА(Товары.Количество) КАК Количество,
| СУММА(Товары.Сумма) КАК Сумма
|ПОМЕСТИТЬ ТоварыДокумента
|ИЗ
| СписокНоменклатуры КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТоварыДокумента.Номенклатура КАК Номенклатура,
| ТоварыДокумента.Количество КАК Количество,
| ТоварыДокумента.Сумма КАК Сумма,
| УправленческийОстатки.Субконто3 КАК Партия,
| УправленческийОстатки.СуммаОстатокДт КАК СуммаОстаток,
| УправленческийОстатки.КоличествоОстатокДт КАК КоличествоОстаток
|ИЗ
| ТоварыДокумента КАК ТоварыДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &СчетТовары,
| ,
| Субконто1 В
| (ВЫБРАТЬ
| ТоварыДокумента.Номенклатура
| ИЗ
| ТоварыДокумента КАК ТоварыДокумента)
| И Субконто2 = &Склад) КАК УправленческийОстатки
| ПО ТоварыДокумента.Номенклатура = УправленческийОстатки.Субконто1»;
Почему вы не осуществляете проверку на null при выборе полей регистра бухгалтерии?
4)Можно ли сформировать отчет так, как ранее об этом писал Соркин Виталий, при соответствующих проводках(22.08.2015)?
Приветствую.
1. Требования к экзамену читали? Там это требуется.
2. При работе с новой базой «галочка» установится автоматом. И на обновление итогов при исключительной блокировке не повлияет.
3. А зачем. У Вас есть проблемы с проверкой на NULL? Это элементарная вещь. Курс построен на архитектуре решений, а не кодинге.
4. Не знаю,я вижу только Ваше сообщение.
По поводу 4 пункта вашего ответа:
Почему вы умышленно не заполняли движения документа Продажи по Дт счета «Прибыли, убытки» в разрезе субконто, а потом пришлось в отчете делать подзапрос для поиска себестоимости? Ведь, если были проводки с субконто по Дт, то было бы достаточно сделать такой простой запрос:
ВЫБРАТЬ
РегистрБухгалтерииОбороты.СуммаОборотДт КАК Себестоимость,
РегистрБухгалтерииОбороты.СуммаОборотКт КАК Выручка,
РегистрБухгалтерииОбороты.КоличествоКорОборот КАК Количество,
РегистрБухгалтерииОбороты.Субконто1 КАК Склад,
РегистрБухгалтерииОбороты.Субконто2 КАК Номенклатура ИЗ РегистрБухгалтерии.РегистрБухгалтерии.Обороты(, , Период, Счет = &СчетДоходовРасходов, , , , )
КАК РегистрБухгалтерииОбороты
Или такое решение считается ошибочным?
Ваш код абсолютно корректен, если добавить еще отбор по корр счетам.
Здравствуйте, Павел! Для учета услуг я создал Перечисление ВидыНоменклатуры со значениями Услуга, Материал. Подскажите, пожалуйста, в каком месте Вашего кода в модуле объекта документа «Продажа товара» необходимо вставить условие Если ВыборкаНоменклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда, и в каком конкретно месте Вашего кода будет конец данного условия.
Приветствую.
Услуги «отсекать» лучше в запросе. Либо жестким условием, либо получением признака услуги, для последующего анализа при списании стоимости.
Добрый день,
было бы полезно для слушателя как должны быть настроены свойства конфигурации. (чистой или каркасной)
Приветствую. О чем Вы?
Добрый день, я о настройке чистой или перенастройке каркасной на старте выполнения заданий. Например, общие свойства конфигурации: совместимость, интерфейс, блокировки, модальность; разделение итогов по регистрам и т.п. В общем, то, что на экзамене следует перенастроить в первую очередь.
В чистой ничего перенастраивать не надо. А в карканой, да кто же ее знает что там и как будет изначально настроено. Не факт, что на экзамене будет та же, что на сайте.
1. При дистанционной сдаче экзамена, нужно ли описывать почему был выбран тот или иной вариант решения? И если, да, то насколько подробно описывать (чтобы из-за ошибок в описании не получить штрафные баллы).
2. По решению задачи 1 стартового пакета.
2.1 В решении никак не учитывается продажа услуг, в задании явно написано, что они есть. Или здесь нужно исходить из того, что в задании не описано как их учитывать?
2.2 Закладывать учет товаров по характеристикам в регистры, когда нужно (создавать измерение Характеристика у регистра накопления)? В примере отчета не отражено, что у одного и того же товара может быть несколько производителей, но в принципе это возможно. Не будет ли считаться решение упрощением задачи учета товаров по характеристикам?
2.3 Некорректно считается себестоимость в не оперативном режиме в следующем случае: есть два прихода одного и того же товара, первый в 12:00:00, второй в 12:00:01. Если провести расход этого товара сначала в 12:00:00, а затем в 12:00:01 (просто поменять время и записать проведенный), то учитываются движения расхода этого товара, после повторного проведения документа расхода, себестоимость считается корректно. Проверял на вашей базе. Такие ошибки стоит устранять или на экзамене проверки простые?
1. Это лучше уточнить в УЦ1, но мне кажется, что адекватные комментарии — это хорошо.
2.1 Это проблема? Продажа услуг должна отразится в регистре с продажами. Контролировать остатки услуг, естественно, не надо.
2.2 В билетах нет задач с характеристиками, о чем Вы? Я то-то пропустил?
2.3. Это решается последовательностями.
2.1
Здесь вопрос в том, что реализовывать по услугам исходя из формулировки задания. Просто разграничить номенклатуру на товары и услуги и в стоимостной регистр записывать только товары (экономия времени), или как вы написали, дополнительно сделать регистр Продажи и отражать продажи услуг в нем.
2.2
Если в билетах такие задачи не надо решать, то тогда ладно.
>>Я что-то пропустил?
В первой задаче в видео решения создавался ПВХ для отчета в котором отражалась характеристика Производитель номенклатуры.
2.1 Вы собрались продажи только услуг регистрировать в регистре Продажи? А продажи Товаров? Отчет собираетесь строить по регистру с себестоимостью? Это не правильно. Не каждое списание товаров — это продажа. Да и от-куда будете получать сумму выручки? Из документов?
2.2 Это был лишь пример.
2.1 В вашем решении 1 задачи регистр Продажи не создавался. Если делать регистр Продажи, то там будет регистрироваться не только услуги. Вопрос от того, что в видео было сказано, что ничего лишнего делать не обязательно, если об этом явно не сказано. В задании сказано, что «могут быть услуги и товары и услуги в одной табличной части». Или первые восемь задач ничего общего с реальными билетами не имеют и в видео показывается «базовые» приемы реализации тех или иных механизмов?
Да, первые видео являются вводными.
Стартовая задача №4 (разбор валютного учета)
Подскажите почему мы в документе корректировка долга (переоценка валютных счетов)
не ставим никаких блокировок,а ведь читаем остатки по регистру.
Мы же сначала читаем потом пишем почему нет «Новый БлокировкаДанных»
и в последующих задачах из раздела БУ я не увидел блокировок
Павел объясните пожалуйста для регистров бухгалтерии есть особенности или их просто нет смысла блокировать в задачах на экзамене. Это не проверяется?
Приветствую. Нужны.
При записи уроков мы рассчитывали на слушателей с достаточным уровнем подготовки. Например, считаем, что если один раз показать механизм управляемых блокировок, то далее слушатель самостоятельно сможет подобный механизм воспроизвести Считаем, что слушатель может самостоятельно помножить цену на количество в управляемой форме, создать без объяснения новый справочник или регистр накопления
http://курсы-по-1с.рф/dev-attestation/
Спасибо, достаточно было просто «Нужны»
Вопрос по «ЗАДАЧА «START_PACK_03» (2.17)»
Почему вы умышленно не заполняли движения документа Продажи по Дт счета «Прибыли, убытки» в разрезе субконто, а потом пришлось в отчете делать подзапрос для поиска себестоимости?
Ведь, если были проводки с субконто по Дт, то было бы достаточно сделать такой простой запрос:
ВЫБРАТЬ
РегистрБухгалтерииОбороты.СуммаОборотДт КАК Себестоимость,
РегистрБухгалтерииОбороты.СуммаОборотКт КАК Выручка,
РегистрБухгалтерииОбороты.КоличествоКорОборот КАК Количество,
РегистрБухгалтерииОбороты.Субконто1 КАК Склад,
РегистрБухгалтерииОбороты.Субконто2 КАК Номенклатура
ИЗ
РегистрБухгалтерии.РегистрБухгалтерии.Обороты(, , Период, Счет = &СчетДоходовРасходов, , , , ) КАК РегистрБухгалтерииОбороты
Или такое решение считается ошибочным?
Хм, обычно я как раз обороты по Прибылям делаю в разрезе оборотных субконто. И как раз для отчета.
Странно, при возможности посмотрю базу.
Будет ли считаться ошибкой, если в документах в свойстве «Удаление движений» поставить «Удалять автоматически»?
Чтобы не зависеть от того толстый клиент или тонкий, система сама всегда очистит движения при перепроведении.
Будет ошибкой, так как количество заблокированных таблиц при перепроведении будет неоправданно большим.
Здравствуйте, Павел. В требованиях к экзамену есть пункт «В задачах получения данных из информационной базы установка отборов по неиндексированным полям». В каких случаях на экзамене требуется устанавливать индексы и как это делать?
Индексы можно включить вручную в свойствах реквизитов и при создании временных таблиц в запросах. Как сказано в требованиях, делать это надо по тем полям, по которым производится отбор, включая условия соединения таблиц в запросах.
Добрый день, Павел!
Вопрос по 1 задаче, там где вы получали себестоимость из регистра уже после проверки на достаточность товаров.
Вопросы такие:
1. Насколько приемлемым будет, если себестоимость получить в одном пакете с запросом по остаткам?
Вы говорили в уроке, что операцию расчета себестоимости выполняете уже после того, как получен положительный результат о достаточности товаров, соответственно. Я же так понимаю, что запрос по себестоимости, выполняемый в пакете, не сильно увеличит нагрузку на систему, в сравнении с отдельным запросом.
2. Если описанный путь является приемлемым, то для регистра себестоимость тоже подойдет метод блокировать для изменения и принудительная запись сразу же после записи регистра остатков товаров? Или не подойдет?
Спасибо!
Приветствую!
Думаю, что эта статья http://курсы-по-1с.рф/articles/статья-платформа-блокировки/ полностью закроет все вопросы.
Добрый день!
Задача 2.
Учетную политику я получил так: УчетнаяПолитика = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментВремени());, при этом запрос, как в Вашем примере не разбил. Могу я установить блокировку регистра так:
Движения.ОстаткиТоваров.БлокироватьДляИзменения = Истина;
без получения данных из первой таблицы и установки блокировки таким образом:
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(«РегистрНакопления.ОстаткиТоваров»);
ЭлементБлокировки.ИсточникДанных = РезультатПоТЧ;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных(«Номенклатура», «Номенклатура»);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
?
Приветствую.
Не понял сути вопроса.
Вы хотите не получать данные табличной части запросом, а использовать саму табличную часть в качестве источника данных для блокировки? Можете.
Потом, правда, Вы все равно будете получать табличную часть…
Имеется ввиду, такой код будет корректно выполняться?
Движения.ОстаткиТоваров.Записывать = Истина;
Движения.ОстаткиТоваров.БлокироватьДляИзменения = Истина;
Движения.ОстаткиТоваров.Очистить();
МоментВремени = МоментВремени();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.ОстаткиТоваров.Записать();
Конецесли;
УчетнаяПолитика = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментВремени);
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ПродажаТоваровТовары.Номенклатура КАК Номенклатура,
| СУММА(ПродажаТоваровТовары.Количество) КАК Количество,
| СУММА(ПродажаТоваровТовары.Выручка) КАК Выручка
|ПОМЕСТИТЬ ВТ_Док
|ИЗ
| Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары
|ГДЕ
| ПродажаТоваровТовары.Ссылка = &Ссылка
| И НЕ ПродажаТоваровТовары.Номенклатура.Услуга
|
|СГРУППИРОВАТЬ ПО
| ПродажаТоваровТовары.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|//////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_Док.Номенклатура КАК Номенклатура,
| ВТ_Док.Количество КАК Количество,
| ВТ_Док.Выручка КАК Выручка,
| ОстаткиТоваровОстатки.Партия,
| ОстаткиТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток,
| ОстаткиТоваровОстатки.СтоимостьОстаток
|ИЗ
| ВТ_Док КАК ВТ_Док
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| ВТ_Док.Номенклатура
| ИЗ
| ВТ_Док КАК ВТ_Док)) КАК ОстаткиТоваровОстатки
| ПО ВТ_Док.Номенклатура = ОстаткиТоваровОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| ОстаткиТоваровОстатки.Партия.МоментВремени //ПорядокСортировки
|ИТОГИ
| СРЕДНЕЕ(Количество),
| СРЕДНЕЕ(Выручка),
| СУММА(КоличествоОстаток)
|ПО
| Номенклатура»;
Запрос.УстановитьПараметр(«МоментВремени», МоментВремени);
Запрос.УстановитьПараметр(«Ссылка», Ссылка);
Если УчетнаяПолитика.МетодСписания = Перечисления.МетодыСписания.LIFO Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, «//ПорядокСортировки», «УБЫВ»);
КонецЕсли;
Вообще запутался, прошлый вопрос был про блокировки, в тут о блокировках нет ни слова.
Отвечая на вопрос «Имеется ввиду, такой код будет корректно выполняться?» — скорее всего да.
Добрый день, Павел! Прорешал пакет стартовых задач и хотел бы задать возникшие вопросы сразу по каждой задаче:
Задача1:
1.При создании механизма Характеристик: Когда создаём регистр сведений «Характеристики номенклатуры» для чего у ресурса «Характеристика» задавать «Связь по типу» с измерением «ВидХарактеристики», ведь для того чтобы задать отбор по типу в форме выбора справочника «Характеристики» достаточно указать в «Связи параметров выбора» вот это «Отбор.Владелец(ВидХарактеристики)».
Задача2:
1.В документе «Продажа товаров» в обработке проведения: В выборке результата запроса когда сравниваем значения КоличествоОстаток из регистра «ОстаткиТоваров» и Количество из документа, а затем ставим отказ = Истина в случае если Количество > КоличествоОстаток. Далее такая проверка: «Если Отказ Тогда Продолжить; КонецЕсли;». Для чего написано «Продолжить;» , ведь в этом случае будет пропущен виток цикла и обход цикла пойдёт дальше давая нагрузку на систему, не логичнее ли написать «Возврат» и сразу же выходить из процедуры обработки проведения?
2.В документе «Поступление товаров» в обработке проведения при формировании движений Вы используете «Движение.ВидДвижения = ВидДвиженияНакопления.Приход;», а в расходной накладной «Движение = Движения.ОстаткиТоваров.ДобавитьРасход();» чем отличаются такие записи в плане производительности? 3. Почему при формировании движений по регистру накопления «Продажи» Вы не указываете вид движения расход?
4.Нужно ли делать контроль отрицательных остатков при списании, если в задании это явно не сказано?
Задача4:
1.В каких целях у документов «Приходная накладная» и «Корректировка долга» оперативное проведение запрещено?
Задача5:
1.При расчете по среднему «Больничный» в Выборка.ОтработаноДнейБаза находится фактически отработанное количество дней базового вида расчета «Оклад» за 2 предыдущих месяца т.е 43 дня.Почему так происходит ведь в настройках регистра стоит галка «Базовый период» и периодичность «Месяц»? (Сумма = Выборка.СуммаБаза / Выборка.ОтработаноДнейБаза * Выборка.ФактДней);Ведь если стоит периодичность базового периода «Месяц» в Выборка.ОтработаноДнейБаза должно браться количество дней не за последний отработанный месяц?
2.Для чего в регистре расчета «ДопНачисления» стоит галка «Базовый период»?
Задача6:
1.Почему при определении «Суммы начисления по тарифу» мы используем виртуальную таблицу «РегистрРасчета.ОсновныеНачисления.ДанныеГрафика» и вытаскиваем оттуда «ФактЧасов», почему нельзя брать эти данные из виртуальной таблицы «РегистрРасчета.ОсновныеНачисления.ФактическийПериодДействия» из ресурса «ОтработаноЧасов».
2.При сторнировании вида расчета «Прогул» как метод набора записей «ПолучитьДополнение()» понимает что нужно получить именно данные по виду расчёта «Прогул»? почему данные получает именно за прошлый месяц?
Задача8:
1.Во 2 части задания при получении картинки из базы: В процедуре «ПриСозданииНаСервере» Вы используете метод «Картинка = ПолучитьНавигационнуюСсылку(Объект.Ссылка, «ДанныеКартинки»);» не совсем понятен смысл этого метода (этот метод получает двоичныеданные из временного хранилища и преобразует их в картинку?).
Я сделал следующим образом в «»ПриСозданииНаСервере»: РеквизитОбъект = РеквизитФормыВЗначение(«Объект»); Картинка = ПоместитьВоВременноеХранилище(РеквизитОбъект.ДанныеКартинки.Получить()); — так тоже работает… Какой вариант более правильный и менее ресурсоёмкий с точки зрения производительности?
Приветствую.
1.1. Чтобы при выборе, в поле ввода не выбирать сначала тип, а потом значение.
2.1. Намного логичнее то, что получив все данные запросом (уже нагрузив систему) мы показываем пользователю не только какого первого товара не хватает, но и вообще всех. А то он первый поправит, и потом заново перепроводить документ будет, опять заблокирует таблицы, построит запросы и пр.
2.2. ДобавитьПриход() и ВидДвижения.Приход не отличаются ничем.
2.3. Регистр накопления Продажи оборотный, там в принципе нет ни прихода, ни расхода.
2.4. Что будет при проведении следующих документов после того как мы уйдем в минус? Как считать себестоимость?
4.1. Для того, чтобы можно было вводить их числом вперед, в том числе для тестирования решения. На мой взгляд оперативное проведение как таковое вообще лишено смысла. Но это к сертификации не относится.
5.1. Нет, совсем не так. Это тема базового курса по программированию. Рекомендую почитать книгу «Профессиональная разработка», там хорошо написано про свойства регистров расчета.
5.2. См 5.1.
6.1. Так мы и берем данные из специальной виртуальной таблицы ДанныеГрафика. Там как раз используется предопределенный отбор, и получаются ФактДни. Таблица ФактическийПериодДействия не содержит этих данных, она содержит реальные периоды записей, полученные после вытеснений. Короче, см. 5.1.
6.2. Так устроена система, при наложении периодов действия, система возвращает пересекающиеся интервалы. См 5.1.
8.1. Метод получает навигационную ссылку, она похожа на обычную url ссылку и указывает где хранится картинка. Само получение данных картинки производится самой платформой при конструировании формы.
То что Вы сделали — это как раз то, что делает сама система.
Добрый вечер! Задача 1. Себестоимость этого утеплителя будет рассчитана как средняя, т.е. составит (1000+2000)/2 = 1500 рублей, и продать возможно не более одного рулона с каждого склада.
Я так понимаю, что необходимо сделать, чтобы нельзя было вводить в ТЧ Количество > количества складов?
Нужно ли закрывать менеджер временных таблиц в конце процедуры проведения расходной накладной?
>>Я так понимаю, что необходимо сделать, чтобы нельзя было вводить в ТЧ Количество > количества складов?
Я так понимая, что это нужно контролировать при проведении.
>>Нужно ли закрывать менеджер временных таблиц в конце процедуры проведения расходной накладной?
Нет, он будет убит вместе с переменной после завершения процедуры в которой его объявили.
Добрый день!
Вопрос по реализации задачи №5.
В тексте задачи говорится, что для каждого подразделения устанавливается отдельный график. Обязательно ли для реализации этой задачи нужно создавать измерение «Подразделение» в регистре сведений «Производственный календарь» и в регистрах расчета? Можно ли обойтись созданием ссылки на график в справочнике «Подразделения», в регистре сведений создать только измерение «График» и реквизит «График» в регистрах расчета? Ведь в условии задачи не сказано, что один и тот же сотрудник может работать одновременно в 2-х подразделениях.
Приветствую!
Нужно.
Добрый день!
http://1c.chistov.pro/2013/07/blog-post_25.html
В статье «Методика оперативного проведения и управляемые блокировки» Вы
написали данный фрагмент кода, в комментариях к статье это обсуждается но все равно не понял.
Если блокировка на чтение сработает только при Движения.СтоимостьТоваров.Записать(), но набор уже
пустой, что же тогда будет блокироваться? В задаче 1(первые 8) Вы такого не писали, надо ли?
//16
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.СтоимостьТоваров.Очистить();
//17
Движения.СтоимостьТоваров.БлокироватьДляИзменения = Истина;
Движения.СтоимостьТоваров.Записать();
КонецЕсли;
//7
Запрос.Текст = «ВЫБРАТЬ
Во-первых, блокируются данные удаленного набора записей, то что было, возможно, до перепроведения.
Во-вторых, блокируется режим разделения итогов регистра, если он включен.
Здравствуйте! Во втором видео уроке, если в рассматриваемой задаче добавить в списание себестоимости «по средней» как в этом случае реализовать решение: если в расходной не указывать партию, тогда будут зависать остатки по партиям?
Нужно убрать партию. Либо в регистре с партиями создать пустую и на нее все списать, либо создать новый регистр без партий.
Добрый вечер!В первой задаче стартового пакета при расчете себестоимости используется моментвремени без указания границ, почему именно так? Спасибо.
А зачем там граница?
Добрый день!
Прорешал первые 8 задач и решил задать накопившиеся вопросы сразу списком.
—
Если в клиентском методе вызываются два серверных метода то будет два обращения к серверу или один. Пример
&НаКлиенте
Процедура пк()
пс1();
пс2();
КонецПроцедуры
&НаСервере
Процедура пс1()
КонецПроцедуры
&НаСервере
Процедура пс2()
КонецПроцедуры
—
В требованиях я не нашел каким должен быть интерфейс Управляемый или Такси, если Такси то будут ли примеры решения задач блока 5 именно по Такси? Если все же Такси то как быть с консолью запросов. Ставить на время модальность а потом снимать?
—
Нужно ли использовать в расчетных задачах блокировки?
—
Задача 6. За каждый час переработки выплачивается премия 100р. Из Вашего решения сотрудник не может переработать больше чем стоит в его графике. те добавлять ему переработку вне графика не нужно?
—
Показатели которые нужно хранить в регистрах сведений(ставка сотрудника,компенсация и тд) их достаточно просто хранить и вводить в док руками или они должны подставляться при заполнении документа исходя из других его реквизитов напр Даты, или не заполнять в форме документа а получать программно? В требованиях это как то описано?
—
1С:Предприятие 8.3 (8.3.5.1383)
При решении бух и расчетных задач несколько раз платформа выдавала ошибки при которых не возможно обновить конфу, решал методом проб устанавливая совместимость с разными версиями, время потерял.
Если такое случается то, что делать?
—
В СКД Вы объединяете наборы данных, а не объединяете данные в запросе. Почему?
1. Два вызова. Данные формы будут синхронизированы после каждого.
2. Такси. На время тестирования можете делать что душе угодно :)
3. Нет.
4. Вроде такого условия нет. Я не добавлял.
5. Достаточно просто хранить.
6. Ну… Наверно тут стоит спросить у тех кто организует прием экзамена. Иногда время добавляют.
7. Мне так нравится, красивей, и нагрузка на СКЛ сервер снижается.
Добрый день!
Павел, скажите пожалуйста, что нужно реализовывать всегда в расчетных задачах, независимо от того написано это в постановке задачи или нет?
Приветствую. Посмотрите требования к экзамену, ничего другого реализовывать не стоит.
Еще вопросик: В пятой базовой задаче говорите, что в требованиях к решению Расчетной задачи есть требование создавать способы расчета, чтобы пользователь мог сам создавать виды расчета. Но изучив файл с текущими требованиями я там такого не нашел. Все таки, актуально ли это требование или нет?
В задачах это оговаривается явно.
Добрый день!
Вопрос по Бизнес-процессам
Создал обработку в которой должно отображаться текущая точка на карте маршрута. При нажатии карта не обновляется.
Модуль формы обработки:
Процедура ОбновитьКарту(Команда)
Карта = ОбновитьКартуНаСервере();
КонецПроцедуры
&НаСервере
функция ОбновитьКартуНаСервере()
Возврат БП.ПолучитьОбъект().ПолучитьКартуМаршрута();
КонецФункции
Интересно, то что открыл базу из видео и там карта тоже не обновляется. Обновляется только если закрыть обработку и заново открыть. Как быть?
Это старый глюк управляемых форм. Здесь нужно смирится.
Добрый день!
Вопрос по Задаче 6
1. Оплата Больничного.
«…Размер больничного определяется как количество дней болезни умноженное на среднедневную базовую ставку…»
В задании же реализовано не количество дней болезни умноженное на среднедневную базовую ставку, а количество часов болезни по пятидневке умноженное на среднедневную базовую ставку. Как следует правильно реализовать это условие?
2. Реализация компенсации затрат на Обмундирование и Премии по переработке.
Для хранения показателей компенсации на обмундирование и Премии по переработке использовал регистры сведений с периодичностью Год. Для устойчивости системы необходимо эти показатели сохранить в документе Начисления. Для этого я использовал реквизит документа и в обработчике события ПередЗаписью модуля документа я заполню эти реквизиты автоматически. Может лучше было использовать реквизит ТЧ документа Начисление и заполнять его при выборе вида расчета?
Как лучше реализовать работу с этими показателями? Мой вариант является приемлемым тоже?
3. Настройка ведущих видов расчета для ОплатыПоТарифу.
Почему для ВР ОплатаПоТарифу в ведущх видах расчета не указали Больничный и Прогул?
1. Про часы я уже отвечал, часы и дни ничем друг от друга не отличаются, в одном случае дни это 0 и 1, в другом часы это 0 и 8 в регистре сведений и регистре расчета.
2. Все данные для расчета должны хранится в регистре расчета, обращение к ТЧ документа будет серьезной ошибкой. Автоматизировать «при выборе» ничего нигде не надо.
3. Зачем? У нас же по базе перерасчеты не наступают при изменении больничного и прогула?
Судя по вопросам, я рекомендовал бы подтянуть теорию по расчетным механизмам.
Добрый день!
Вопрос по 5 задаче.
1. При начислении больничного в формуле задании указана среднечасовая ставка. В решении же среднедневная. В задании нужно учитывать кроме количества отработанных дней еще и количество отработанных часов.В решении почему то это не реализовано. Что за безобразие?
2. В процедуре «РассчитатьНаборЗаписей» выборка сбрасывается в цикле. Может ее сброс вынести за цикл? С какой целью она именно в цикле?
3. Вопрос по премии процентом. Разве в базу вида расчета «ПремияПроцентом» она сама в себя не должна входить? В задании сказано, что …»премия процентом от всех начислений».
Приветствую.
1. Есть проблемы дни превратить в часы? Второй ресур в регистре сведений нужен.
2. Не принципиально.
3. Начисление само себя в том же расчетном периоде включать не может. Никогда.
1. Пока да, есть с этим сложности. Добавил новый ресурс «РабочихЧасов» в РС ГрафикиРабот. В РР ОсновныеНачисления добавил новые Реквизит «РабочихЧасовПлан» и ресурс «РабочихЧасовФакт». Теперь получается при формировании движений в РР ОсновныеНачисления необходимо заполнить реквизит «РабочихЧасовПлан», а при рассчете заполнить ресурс «РабочихЧаосвФакт». Я пока не понимаю как это сделать. При записи движений по РР этот реквизит должен заполняться автоматически, а не пользователем. Еще сказано, что часы болезни рассчитываются по пятидневному графику. Получается еще в системе дополнительно нужно хранить какой график является пятидневным.
3. В задании сказано что: «…сотрудникам компании
начисляется премия процентом от всех начислений, сделанных в предыдущем же расчетном
периоде.» Я понимаю так, что база для премии берется не за рассчитываемый период, а за предыдущий. А в предыдущем периоде так же может быть начислена эта премия. Теперь рассчитываем премию в текущем периоде. Базу берем за предыдущий период. Какие виды расчета тогда должны входить в базу Премии?
4. В решении задачи базовый период указывает сам пользователь, например в случае больничного. Это нормально что сам пользователь задает этот период? При сдаче такой вариант устроит экзаменатора?
5. Еще в задании сказано что Часы болезни рассчитываются по пятидневному графику. Как лучше реализовать это условие?
6. По поводу предела компенсации за лекарства.
я реализовал его как доп. реквизит справочника Сотрудники «ПределКомпенсацииЗаЛекарства». Добавил в документе Начисления в ТЧ Основных и Дополнительных начислений реквизит «ПределКомпенсацииЗаЛекарства» который автоматически заполняется при изменении поля Сотрудник документа. В регистры Расчета Основные и Дополнительные начисления добавил реквизит «ПределКомпенсацииЗаЛекарства». При расчете суммы компенсации использую такой алгоритм:
Предел = Запись.ПределКомпенсацииЗаЛекарства;
Сумма = ВыборкаИзЗапроса.ОтработаноДнейБаза*ВыборкаИзЗапроса.ПлановоеЗнач;
Если Сумма>Предел Тогда
Сумма = Предел;
КонецЕсли;
Запись.Сумма = Сумма;
7. По Премии процентом.
В задании написано: «Процент премии в течение периода начисления не меняется.» Это условие нужно как-то обыгрывать? Если не учитывать это условие, то получается, что в одном расчетном периоде можно ввести две премии с разными процентами. Будет ли это ошибкой?
1. Рабочие дни храним как 0,0,1,1, а часы как 0,0,8,8 и вся разница.
Какой график есть пятидневка нигде хранить не надо, надо просто движение с графиком ввести в базу.
3. Все начисления.
4. Это нормально.
5. Ввести запись с графиком «Пятидневка».
7. Нет, не нужно.
Добрый день!
Задача 5. Получение набора записей в процедуре общего модуля. Приведу два варианта получения набора записей. В уроке приведен второй вариант. Можно на экзамене использовать первый вариант и чем это черевато?
НаборОсн = Регистратор.ПолучитьОбъект().Движения.ОснНачисления;
НаборОсн.Прочитать();
//2
НаборОсн = РегистрыРасчета.ОснНачисления.СоздатьНаборЗаписей();
НаборОсн.Отбор.Регистратор.Установить(Регистратор);
НаборОсн.Прочитать();
Приветствую.
А зачем Вам получать объект (устанавливать блокировку на объект), если Вы его не собираетесь модифицировать? Это будет ошибка.
Получаю для того, чтобы была возможность обратиться к коллекции Движения этого документа. Обратившись к коллекции смогу прочитать набор записей регистра. В этом случае не нужно будет создавать новый набор и устанавливать отборы, остается только лишь прочитать его.
В этом случае, Вы получаете документ объект, создаете набор записей, в котором установлен предопределенный отбор по регистратору и читаете его, делаете все тоже самое, что при ручном создании набора записей, только еще и ДокументОбъект получаете, с блокировкой данных документа, всех его ТЧ и других наборов записей принадлежащих этому документу.
Добрый вечер. 04 Модуль Объекта КорректировкаДолга
Если (Выборка.Отклонение > 0 И Выборка.Вид ВидСчета.Пассивный)
ИЛИ
(Выборка.Отклонение < 0 И Выборка.Владелец() = ВидСчета.Пассивный)
Тогда
С таким условием получается, что куда бы не пошел курс, имея пассивный счет мы всегда в прибыли, в условии ошибка?
Здравствуйте.
Скопируйте код из модуля, у меня подозрение, что в приведенном Вами примере опечатки.
Действительно, опечатка.
Добрый день, Павел!
Вопрос по решению 4 задачи.
В процедуре проведения документа КорректировкаДолга есть условие в котором проверяется прибыль это или убыток. В том условии кроме определения положительно ли отклонение еще проверяется вид счета. Можно ли проверку на вид счета не делать? Казалось бы, что проверки на «положительность» отклонения достаточно.
Положительное отклонение по активному счету — это прибыль, а по пассивному — убыток.
Добрый день.В первой стартовой задаче есть условие «Кроме того,
в расходной накладной могут также быть указаны услуги (например, доставка). И товары и услуги
необходимо указывать в одной табличной части.» Что мне нужно сделать?
Добавить в ТЧ Расходной услуги, при получении остатков в запросе поставить отбор только по товарам.
Добрый день.
Проблема с неявными типами. Задача 04.
Общий модуль:
Функция ПолучитьКурсВалюты(Валюта,Дата) Экспорт
Запрос = Новый Запрос;
Запрос = «ВЫБРАТЬ
| КурсыВалютСрезПоследних.Курс
|ИЗ
| РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних»;
Запрос.УстановитьПараметр(«Дата»,Дата);
Запрос.УстановитьПараметр(«Валюта»,Валюта);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Курс = 1;
Иначе
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Курс = Выборка.Курс;
КонецЕсли;
Сообщить(Курс);
Возврат Курс;
КонецФункции
Ошибка при вызове из формы :
{ОбщийМодуль.ВалютныйУчет.Модуль(9)}: Значение не является значением объектного типа (УстановитьПараметр)
Запрос.УстановитьПараметр(«Дата»,Дата);
Вызов функции:
Объект.Курс = ВалютныйУчет.ПолучитьКурсВалюты(Объект.Валюта,Объект.Дата);
Здравствуйте. Попробуйте сформулировать вопрос.
Здравствуйте Павел.
Обратил внимание на то, что при режиме удаления движений «Удалять автоматически при отмене проведения», в обычном приложении дублирование записей при повторном проведении происходит, только если мы используем данный метод добавления записей
Движение = Движения.ОстаткиНоменклатуры.ДобавитьПриход();
Движение.Период = РезультатЗапросаТЧ.Период;
Движение.Номенклатура = РезультатЗапросаТЧ.Номенклатура;
Движение.Количество = РезультатЗапросаТЧ.Количество;
Если же использовать метод загрузки записей
Движения.ОстаткиНоменклатуры.Загрузить( РезультатЗапросаТЧ.Выгрузить() );
то дублирования не происходит.
Соответственно и производить очистку набора записей в начале обработки проведения при использовании метода Загрузить() не нужно?
Но мы это делали в первой задаче в документе «Продажа товаров». Для чего?
При работе с обычными формами система в момент открытия читает старые движения и они не удаляются, при формировании новых.
В упр формах старые движения могут быть прочитаны в момент открытия в том случае если мы выставим соответствующую галку в реквизитах формы или будем отображать сам реквизит.
Для этого, для надежности, я рекомендую очищать движения в начале обработки проведения, дабы не попасться на такой ерунде.
При загрузки движения таблица движений полностью перезаполняется, в этом случае очищать движения не нужно, это не имеет смысла.
Добрый вечер.
Задача 01.
Документ ПродажаТоваров.
Табличная часть: поле Коэффициент.
Если тип данного поля установить число,то код:
Стр = Элементы.СписокТоваров.ТекущиеДанные;
Сообщить(ПолучитьКоэфф(Стр.ЕдиницаИзмерения));
Стр.Коэффициент = ПолучитьКоэфф(Стр.ЕдиницаИзмерения);
Устанавливает значение в поле.
Если тип поля установить СправочникСсылка.ЕдиницыИзмерения
то поле не заполняется, попрошу подсказать.
Не подскажу. Скорее всего функция ПолучитьКоэфф() возвращает число.
И второй вопрос — у меня поддержка в мастер-группе до 27 июля, а если мне не хватит этого времени могу я оплатить дополнительные месяц/два поддержки?
Доброго дня, Михаил!
Если на данный момент Вы только изучаете уроки, мы можем приостановить активацию Вашего токена.
В таком случае доступ к материалам у Вас останется, а Мастер-группой Вы сможете воспользоваться позже, когда изучите весь материал.
Доступ к материалам — пожизненный.
По вопросам приостановки токена обратитесь, пожалуйста, на support@kursy-po-1c.ru
понятно, а вот именно продлить никак нельзя?
подумаю над приостановкой активации…
Для продолжения обучения Вы можете приобрести Продление доступа к Мастер-группе и продолжить обучение позже.
Стоимость продления доступа к Мастер-группе на 2 месяца – 2700 рублей. Для оформления заказа Вам нужно будет обратиться на support@kursy-po-1c.ru .
2700 это ещё два месяца поддержки в мастер-группе?
Да. На 2 месяца.
Ок, тогда как мне приостановить активацию токена?
Михаил, активацию Вашего токена приостановили.
Отправили Вам письмо с support@kursy-po-1c.ru
Добрый день! Прошел несколько первых задач из стартового комплекта. Очень хорошие и подробные объяснения. Все на столько ясно, что даже и вопросы задавать не особо надо, т.к. объясняется каждый мелкий нюанс. Но, переходя к самостоятельному решению задач, понимаю, что воспроизвести подобное решение самостоятельно не получится из-за отсутствия практического опыта. Отсюда вопрос — может посоветуете какую нибудь методику, что бы, как говориться «набить руку». Сейчас пытаюсь решать сам, но постоянно смотрю в объяснения преподавателя — такой способ мне кажется не очень эффективным.
Приветствую.
Тут только практика. Решайте задачи из сборника.
до сборника пока ещё рановато, я пока пытаюсь повторить те решения, которые демонстрируются на уроках, стараясь как можно меньше обращаться к базе с решением и видео, это правильно?
Наш курс практический, если не хватает базовых знаний, следует выбрать Продвинутый курс по программированию — http://www.spec8.ru/devadv
Добрый день!
Вопрос по второй задаче.
1. Как лучше организовать реализацию услуг? В справочнике Номенклатура создать реквизит «Услуга» или же создать новый справочник «Услуги»? При списании себестоимости нужно будет услуги не учитывать. При поступлении товаров также будет необходимым проверка чтобы пользователь не ввел услугу или такую проверку можно не делать? На что еще следует обратить внимание?
2. В приведенном решении есть возможность вводить новые документы задним числом. В задании же сказано что документы задним числом не вводятся.
1. Услуга — это признак элемента в справочнике «Номенклатура».
2. В задании данное ограничение реализовано для упрощения решения.
Павел, здравствуйте!Возникли вопросы по 3 задаче:
1.Для чего в задаче создаётся документ «Операция», который проводки по регистру бухгалтерии «Управленческий» не делает, а только лишь отображает коллекцию движений?
2.В этой же задаче при установке СубконтоДт,СубконтоКт используется обращение по индексу Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Партия] = Ссылка в типовых конфигурациях 1С есть модуль БухгалтерскийУчет.УстановитьСубконто(Док8.СчетЗатрат, Док8.Субконто1, «НоменклатурныеГруппы», НоменклатурнаяГруппа).В каркасной конфигурации надо пользоваться способом Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Партия] или будет встроен типовой общий модуль в котором будут стандартные функции от 1С?
Здравствуйте.
1. Почему не делает? Делает, точнее может делать, и это важно учитывать.
2. Никаких «стандартных функций» нет. Посмотрите каркасную конфигурацию.
Добрый день, вопрос по задаче №2 из Стартового пакета, извините если спрашивали.
1. Вроде бы «РезультатПоТЧ.Пустой()» никогда не будет пустой если в ТЧ документа есть записи.
Смысл этого кода? Может быть нужно было сделать отдельный запрос по учетной политике?
Да и хранить еще одно поле во временной таблице не эффективно.
Если РезультатПоТЧ.Пустой() Тогда
Возврат;
КонецЕсли;
2. При левом соединении обязательна проверка на NULL, насколько знаю за это снижают баллы на экзамене (0,5 балла).
//////////////////////////////////////////////////////////////////////
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
«ВЫБРАТЬ
| ПродажаТоваровСписокТоваров.Номенклатура КАК Номенклатура,
| СУММА(ПродажаТоваровСписокТоваров.Количество) КАК Количество,
| СУММА(ПродажаТоваровСписокТоваров.Выручка) КАК Выручка,
| УчетнаяПолитикаСрезПоследних.МетодСписания
|ПОМЕСТИТЬ ДокТЧ
|ИЗ
| Документ.ПродажаТоваров.СписокТоваров КАК ПродажаТоваровСписокТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитика.СрезПоследних(&МоментВремени, ) КАК УчетнаяПолитикаСрезПоследних
| ПО (ИСТИНА)
|ГДЕ
| ПродажаТоваровСписокТоваров.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ПродажаТоваровСписокТоваров.Номенклатура,
| УчетнаяПолитикаСрезПоследних.МетодСписания
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДокТЧ.Номенклатура,
| ДокТЧ.МетодСписания
|ИЗ
| ДокТЧ КАК ДокТЧ»;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.ОстаткиТоваров.Записать();
КонецЕсли;
Запрос.УстановитьПараметр(«МоментВремени», МоментВремени());
Запрос.УстановитьПараметр(«Ссылка», Ссылка);
РезультатПоТЧ = Запрос.Выполнить();
Если РезультатПоТЧ.Пустой() Тогда
Возврат;
КонецЕсли;
1. Это не существенно. Можно и пакетным запросом выбрать данные по учетной политике. Проверка на пустой запрос позволяет не создавать объект «Выборка», а может он быть пустым или нет именно в какой-то конкретной ситуации я давно уже не оцениваю, мне проще элементарную операцию в шаблон забить, дабы сэкономить ресурсы при возможности.
2. Проверка на NULL нужна только по тем полям которые безусловно будут прочитаны в результате запроса. Если количество не будет получено, то бессмыслено приводить сумму к нулю, мы до нее не дойдем в обходе результата. Проверка на NULL не быстрая операция.
Но это все не существенно.
В данной задаче указано так же, что и товары и услуги указываются в одной табличной части.
У меня в этом запросе как раз реализован выбор номенклатуры( товара ), т.е. если в табличной части указаны только услуги, то запрос вернётся пустой.
Добрый день, коллеги
поясните плиз , обязательно ли делать блокировку по периоду ?
=
ЭлементБлокировки.УстановитьЗначение(«Период», Новый Диапазон(,Реквизиты.период));
столкнулся с такой блокировкой в БП 30
Для блокировки записей можно использовать ограничение по периоду, в случае если возможно параллельное чтение движений или остатков разделенных по времени, к примелу вечером пишем изменения, а утром при этом тоже можно читать остатки, они же не изменяются.
Часто можно видеть подобные конструкции при блокировке разделяемой.
здравствуйте, Павел. в случае использования нескольких ресурсов в регистре сведений графиков (например если расчет ведется и в днях и в часах), какой из них нужно указывать в поле «значение графика» в настройках регистра расчета и почему?
Приветствую!
Тот, который будет использоваться для определения пропорции при получении базы зависящей по периоду действия.
здравствуйте, куда делись описания задач в pdf на этой странице? все ссылки зачеркнуты, ошибка 404
Доброго дня, Виталий!
Спасибо за внимательность.
Страницу мы уже исправили.