Подразделение нигде по задаче не нужно, в том числе и в отчете его нет.Читал разъяснения, что "совместительство не допускается" - нет измерения Подразделение в РР, "допускается" - измерение есть, так что всё верно, хотя до экзамена надо еще поразмышлять. :)
В общем, я его вообще не использую, ни в ТЧ документа Начисление, ни в РР
Надеюсь, это не грех.
Как думаете, сгодится, если так на экзамене успеть?ОУ - "Использование менее эффективной методики проведения документов" (как же так? ведь об этом столько говорят), в отчете убрать итог количество по складу.
ОУ - "Использование менее эффективной методики проведения документов" (как же так? ведь об этом столько говорят), в отчете убрать итог количество по складу.
Читал разъяснения, что "совместительство не допускается" - нет измерения Подразделение в РР, "допускается" - измерение есть, так что всё верно, хотя до экзамена надо еще поразмышлять. :)
Хм ... не понимаю, почему может быть нельзя. Бывают ситуации, что нет смысла, потому что уже предварительно нужно запросом получить какую-то информацию. В данном случае склад в шапке, номенклатура и количество в ТЧ, больше ничего не надо.ОУ - "Использование менее эффективной методики проведения документов" (как же так? ведь об этом столько говорят), в отчете убрать итог количество по складу.
alex1248, хотите сказать, здесь можно контролировать остатки по НОВОЙ МЕТОДИКЕ?
Но ведь для формирования движений необходимо сначала получить Себестоимость.
Не понял Вас. Можете выложить решение с новой методикой? А то я прямо усомнился, может я чего не догоняю ))
А остаток количества по складу зачем из запроса убирать? Проверяю по нему, есть ли достаточное количество товара на этом складе.Из отчета.
Да, по слухам из тырнета именно так. :DЧитал разъяснения, что "совместительство не допускается" - нет измерения Подразделение в РР, "допускается" - измерение есть, так что всё верно, хотя до экзамена надо еще поразмышлять. :)
Ага, картинка прорисовывается. Спасибо, alex1248
Тогда, если "Каждый сотрудник может работать одновременно в нескольких подразделениях компании, то есть совместительство допускается",
то это значит, что в РР необходимо Подразделение?
Хм ... не понимаю, почему может быть нельзя
alex1248, спасибо за ответ. Очень интересно узнать другую точку зрения. Ваше решение понятное, четко структурированное, легко читается, в общем респект.В моем решении есть явная ошибка (-1 балл) (и наверное, не одна, так что работы еще море :D ) - запрос (Если ТекСтрокаСписокНоменклатуры.Номенклатура.Услуга = Ложь) в цикле при записи в регистр остатков. В дальнейшем в такой ситуации из ТЧ номенклатуру без услуг выбираю одним запросом.
alex1248, как Вы понимаете смысл Новой методики контроля остатков? Зачем она нужна и что дает?Я бы сказал, что вопрос не в понимании смысла методики, а в том, 1) когда преподаватели на экзамене посчитают, что она эффективнее, 2) убедить себя, что это именно так. В этом случае, можно будет во время защиты находиться с ними на одной волне, что, надеюсь, повысит шансы. :D
В моем понимании, она работает быстрее старой (на уровне платформы), то есть позволяет сократить время проведения документа (это становится ощутимо на больших объемах данных).
В своем решении, в документе РН, Вы сначала делаете списание ОстаткиТоваров по НОВОЙ методике, а затем списываете Партии по СТАРОЙ. У меня же используется Старая методика. Запрос выполняется один, он получает остатки и по Складу и по Партиям и если их хватает, то формируются движения.
В моем понимании смысл НОВОЙ методки заключается в том, что сразу один раз без контроля остатков списал, затем проверил, что нет минусов и все! Поэтому она и применима не везде, а только в том случае, если для формирования движений не нужно предварительно получать данные.
А по Вашей схеме, и правда, "новую" методику можно использовать всегда.
С другой стороны, возможно, Вы правы, а я ошибаюсь, вот только рассудить нас некому ))
Хорошо, если бы к нам заглянул ВСЕВИДЯЩИЙ GROOVY, но вряд ли он найдет время копаться в наших "умных" решениях ))
При списании по первому сроку годности уходим в минус.Чтобы не "плыли" остатки по сумме там, где они не нужны, снимается признак суммового учета по соответствующему субконто (именно так сделано в этом решении).
А вот этот код в документе Операция в процедуре "ПриЗаписи" можете прокомментировать?Обратите внимание на УстановитьАктивность(). Этот фрагмент кода отключает активность проводок, если документ Помечен на удаление.
А вот этот код в документе Операция в процедуре "ПриЗаписи" можете прокомментировать?Обратите внимание на УстановитьАктивность(). Этот фрагмент кода отключает активность проводок, если документ Помечен на удаление.
Когда ставишь/снимаешь пометку удаления, никакой формы нет.А вот этот код в документе Операция в процедуре "ПриЗаписи" можете прокомментировать?Обратите внимание на УстановитьАктивность(). Этот фрагмент кода отключает активность проводок, если документ Помечен на удаление.
К этой строчке у меня вопросов нет.
Но зачем снова читать данные из регистра, они же есть на форме и так?
Когда ставишь/снимаешь пометку удаления, никакой формы нет.А вот этот код в документе Операция в процедуре "ПриЗаписи" можете прокомментировать?Обратите внимание на УстановитьАктивность(). Этот фрагмент кода отключает активность проводок, если документ Помечен на удаление.
К этой строчке у меня вопросов нет.
Но зачем снова читать данные из регистра, они же есть на форме и так?
Проводки=Движения.Проводки;
Если Проводки.Записывать=Ложь тогда
проводки.Прочитать();
КонецЕсли;
НоваяАктивность=Не ПометкаУдаления;
Для каждого строка из Проводки цикл
Если строка.Период<>Дата тогда
Проводки.Записывать=Истина;
строка.Период=Дата;
КонецЕсли;
Если строка.Активность<>НоваяАктивность тогда
Проводки.Записывать=Истина;
строка.Активность=НоваяАктивность;
КонецЕсли;
КонецЦикла;
Лишний раз не читает, лишний раз не обновляет.Индексировать временные таблицы нужна всегда, причем по тем полям, которые используются при соединении таблиц, сортировке и тд. Еще временные таблицы не мешало бы и удалять. Но говорят платформа сама справляется с этим, поэтому никто этого не делает)).
На экзамене снижают бал, если не проиндексирована ВТ?
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Для Каждого Запись Из Движения.Основной Цикл
Если Запись.Период <> Дата Тогда
Запись.Период = Дата;
КонецЕсли;
КонецЦикла;
Если ПометкаУдаления <> Ссылка.ПометкаУдаления Тогда
НабЗап = РегистрыБухгалтерии.Основной.СоздатьНаборЗаписей();
НабЗап.Отбор.Регистратор.Установить(Ссылка);
НабЗап.Прочитать();
НабЗап.УстановитьАктивность(Не ПометкаУдаления);
НабЗап.Записать();
КонецЕсли;
КонецПроцедуры
доработалЦитата: "пользователь должен иметь возможность ввести проводки с произвольной корреспонденцией счетов" и усё, больше никаких возможностей ему не требуется ... :)
доработалЦитата: "пользователь должен иметь возможность ввести проводки с произвольной корреспонденцией счетов" и усё, больше никаких возможностей ему не требуется ... :)
Я на экзамене сделал только запись Даты в шапке в Период каждой записи регистра. По поводу остального сделал пометку доделать позже, но так и не добрался до этого, как оказалось, не напрасно. ИМХО, в цейтноте не стоит Операции уделять много внимания.
Сделал 1 билет из 15-ти (https://docs.google.com/document/d/19Cv6COjMRcN_qDLbiWmYwp686IXpxE9GHHzQkpa2rME/edit)
Пойдет? Вроде все работает ))
ПР - Оклад (из рег.свед), Премия (Процент из Шкалы от стажа)
БУ - Сроки годности, Номенклатура.
ОУ - Услуги, Партии, УчетнаяПолитика. Себестоимость по Партиям, но не по Складам (2 остаточных РН)
БП как БП. Параметр сеанса, форма задач, карта маршрута в форме процесса.
И еще вопрос: кто знает, что значит фраза "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается"?
Нужны ли в этой задаче Подразделения вообще?
Запрос.Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КолДок,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК СумДок
|ПОМЕСТИТЬ ТЧ
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЧ.Номенклатура,
| ТЧ.КолДок,
| ТЧ.СумДок,
| ЕСТЬNULL(ОсновнойОстатки.КоличествоОстатокДт, 0) КАК КолОст,
| ЕСТЬNULL(ОсновнойОстатки.СуммаОстатокДт, 0) КАК СумОст
|ПОМЕСТИТЬ ОстаткиТоваров
|ИЗ
| ТЧ КАК ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Основной.Остатки(
| &МоментОстатков,
| Счет = ЗНАЧЕНИЕ(ПланСчетов.Основной.Товары),
| &МассивСубконто,
| Субконто1 В
| (ВЫБРАТЬ
| ТЧ.Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК ОсновнойОстатки
| ПО ТЧ.Номенклатура = ОсновнойОстатки.Субконто1
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОстаткиТоваров.Номенклатура КАК Номенклатура,
| ОстаткиТоваров.КолДок КАК КолДок,
| ОстаткиТоваров.СумДок КАК СумДок,
| ОстаткиТоваров.КолОст КАК КолОст,
| ОстаткиТоваров.СумОст КАК СумОст,
| ОсновнойОстатки.Субконто2 КАК Срок,
| ЕСТЬNULL(ОсновнойОстатки.КоличествоОстатокДт, 0) КАК КолОстСрок
|ИЗ
| ОстаткиТоваров КАК ОстаткиТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Основной.Остатки(
| &МоментОстатков,
| Счет = ЗНАЧЕНИЕ(ПланСчетов.Основной.Товары),
| &МассивСубконто,
| Субконто1 В
| (ВЫБРАТЬ
| ТЧ.Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК ОсновнойОстатки
| ПО ОстаткиТоваров.Номенклатура = ОсновнойОстатки.Субконто1
|ИТОГИ
| МАКСИМУМ(КолДок),
| МАКСИМУМ(СумДок),
| МАКСИМУМ(КолОст),
| МАКСИМУМ(СумОст),
| СУММА(КолОстСрок)
|ПО
| Номенклатура";
В первую очередь списывается товар с наименьшим календарным сроком годности.в запросе я не вижу упорядочивания по сроку годности.
Запрос.Текст =
"ВЫБРАТЬ
| СписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(СписокНоменклатуры.Количество) КАК Количество,
| СУММА(СписокНоменклатуры.Сумма) КАК Сумма
|ПОМЕСТИТЬ ТабДок
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК СписокНоменклатуры
|ГДЕ
| СписокНоменклатуры.Ссылка = &Ссылка
| И СписокНоменклатуры.Номенклатура.ВидНоменклатуры = &Товар
|
|СГРУППИРОВАТЬ ПО
| СписокНоменклатуры.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| УправленческийОстатки.Субконто1 КАК Номенклатура,
| УправленческийОстатки.Субконто2 КАК СрокГодности,
| ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
| ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток
|ПОМЕСТИТЬ Остатки
|ИЗ
| РегистрБухгалтерии.Управленческий.Остатки(
| &МоментИтогов,
| Счет = &Счет,
| ,
| Субконто1 В
| (ВЫБРАТЬ
| ТабДок.Номенклатура
| ИЗ
| ТабДок КАК ТабДок)) КАК УправленческийОстатки
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТабДок.Номенклатура КАК Номенклатура,
| Остатки.СрокГодности КАК СрокГодности,
| Остатки.КоличествоОстаток КАК КоличествоОстаток,
| Остатки.СуммаОстаток КАК СуммаОстаток,
| ТабДок.Количество КАК Количество
|ИЗ
| ТабДок КАК ТабДок
| ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
| ПО ТабДок.Номенклатура = Остатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| СрокГодности
|ИТОГИ
| СУММА(КоличествоОстаток),
| СУММА(СуммаОстаток),
| МИНИМУМ(Количество)
|ПО
| Номенклатура";
Добавил кнопку Обновить для Карты маршрута в процессе.Также при полном списании первой партии по сроку годности и частичному списанию второй, первая уходит по сумме в минус
Кнопку Установить пользователя в справочнике ФизЛица оформил текстом.
Покажите мне как Вы получаете условие задачи:ЦитироватьВ первую очередь списывается товар с наименьшим календарным сроком годности.в запросе я не вижу упорядочивания по сроку годности.
мы все тут что бы друг у друга искать косяки )))
alex44ru! Спасибо, что нашли косяк.
PS
Как Вы уже указали, в запрос надо добавить строку:
УПОРЯДОЧИТЬ ПО Срок
Любые пинки приветствуются )Не установлено индексирование измерений РН.
Не установлено индексирование измерений РН.а зачем оно там ?
Выгрузка результата запроса в ТЗ без необходимости (ТабДок = РезультатЗапроса.Выгрузить(); ).Затем эта переменная далее участвует в объекте Блокировка в строке 105
ЭлементБлокировки.ИсточникДанных = ТабДок;
В БУ не решена проблема копеек.ага не обратил внимание проверял на десятках чтоб в голове решать легче было, поправил
Просто совет - на экзамене не стоит тратить время на красоту формы Операции и отчетов.это понятное дело, на экзамены бы задачу то не упростить ) какая там красота.
Хм, я ориентировался лишь на доступную теорию и материалы форума, сам в вопросе индексов совершенно не спец :(. К тому же, мнения расходятся.Не установлено индексирование измерений РН.а зачем оно там ?
при проведении читаются остатки из одного период+номенклатура+склад
и из другого период+номенклатура,
а это как известно индекс таблицы итогов РН период+измерение1+измерение2...
Это я видел. Но необходимости такого ее использования всё же нет. Вроде, можно выборку из результата запроса использовать, хотя на экзамене обычно ограничиваются ТЧ документа.Выгрузка результата запроса в ТЗ без необходимости (ТабДок = РезультатЗапроса.Выгрузить(); ).Затем эта переменная далее участвует в объекте Блокировка в строке 105Код: [Выделить]ЭлементБлокировки.ИсточникДанных = ТабДок;
А что изменилось? Скачал новый файл, посмотрел в конфигураторе, разницы не увидел. На всякий случай ввел в польз режиме: новая номенклатура приход с разными сроками годности 1 ед - 1,00, 1 ед - 1,00, 1 ед - 1,01. Далее создал расх накладную сразу на 3 единицы, каждая списалась на сумму 1,00 ,т.е. 0,01 по сумме зависло.В БУ не решена проблема копеек.ага не обратил внимание проверял на десятках чтоб в голове решать легче было, поправил
И я кое-чему доучился.во во вот и я думал у мя все идеально )
Вроде, можно выборку из результата запроса использовать, хотя на экзамене обычно ограничиваются ТЧ документа.ага намотал на ус как говориться
А что изменилось? Скачал новый файл, посмотрел в конфигураторе, разницы не увидел. На всякий случай ввел в польз режиме: новая номенклатура приход с разными сроками годности 1 ед - 1,00, 1 ед - 1,00, 1 ед - 1,01. Далее создал расх накладную сразу на 3 единицы, каждая списалась на сумму 1,00 ,т.е. 0,01 по сумме завислопонятно, работаю над этим ... может подскажите в каком направлении копать ? я понимаю как по партиям все до копейки списать, но тут другая тема.
Можно через получение в запросе Итогов (Количество по документу) по Номенклатуре, далее определяем сумму к списанию на общее количество по номенклатуре, ну и т.д. И надо будет использовать Окр(), иначе всё равно не сведется.А что изменилось? Скачал новый файл, посмотрел в конфигураторе, разницы не увидел. На всякий случай ввел в польз режиме: новая номенклатура приход с разными сроками годности 1 ед - 1,00, 1 ед - 1,00, 1 ед - 1,01. Далее создал расх накладную сразу на 3 единицы, каждая списалась на сумму 1,00 ,т.е. 0,01 по сумме завислопонятно, работаю над этим ... может подскажите в каком направлении копать ? я понимаю как по партиям все до копейки списать, но тут другая тема.
1) Начисление зарплаты сотрудникам предприятия осуществляется ежемесячно с использованием метода отклонений - это сторно ?Нет, это когда факт период действия получается отклонением от нормального (например, вытеснениями). Но я грубо пишу, точнее лучше просто погуглить.
Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается.Подразделение - реквизит РР. Если совместительство допускается, подразделение - измерение РР (Автомобиль - всегда реквизит :) ).
Нет, это когда факт период действия получается отклонением от нормального (например, вытеснениями).Странное условие задачи, так как тут нет вытесняющих видов расчета
Подразделение - реквизит РР. Если совместительство допускается, подразделение - измерение РР (Автомобиль - всегда реквизит :) ).Я в своем решении все таки сделал подразделение измерением.
Добрый день! интересно, почему в результате запроса образуется 2-я строка: https://yadi.sk/i/FYluyeepjyc26 ин не является ли это ошибкой
Добрый день! интересно, почему в результате запроса образуется 2-я строка: https://yadi.sk/i/FYluyeepjyc26 (https://yadi.sk/i/FYluyeepjyc26) ин не является ли это ошибкойВ каком документе, в какой процедуре ?
Добрый день! интересно, почему в результате запроса образуется 2-я строка: https://yadi.sk/i/FYluyeepjyc26 (https://yadi.sk/i/FYluyeepjyc26) ин не является ли это ошибкойВ каком документе, в какой процедуре ?
В документе "Расходная накладная" в обработке проведения по бухгалтерскому учету, если в отладке вычислить РезультатЗапроса.Выгрузить() то получается таблица, как я указал выше. Тоже решаю Билет 1, у меня как и у Вас получается эта строка.Как Вам уже ответили по субконто "Сроки годности" отключен суммовой учет.
- Очищать ли старые движения???
И нужно ли ещё Движения.ДополнительныеНачисления.Записать(); ?
чтобы записать пустой набор записей по аналогии с Регистрами Накопления?
Про Период Регистрации: Почему нельзя взять его от Даты документа?
Про измерения в ВТ ДополнительныеНачисленияБазаОсновныеНачисления - указываю одно "Сотрудник", -норм отрабатывает, указываю ещё "Подразделения" - точно также )) сколько указывать то лучше
Видел в решениях, Базовый период не указывают в ТЧ (т.к. он берётся за тот же месяц,что и оклад) - и берут его от периода Регистрации, а может в этой задаче нужно поставить галочку у ВР Премия "Период действия как базовый период"??? Как думаете.
Ну и про совместительство... Как быть с этой ситуацией. Действительно, Измерение "" у РР не делать - это правильно будет? в отчёте же не нужно "Подразделение"...
- Очищать ли старые движения???
И нужно ли ещё Движения.ДополнительныеНачисления.Записать(); ?
чтобы записать пустой набор записей по аналогии с Регистрами Накопления?
Очищать не очищать в тонком клиенте значения не имеет набор пуст, но поскольку большинство программистов работали на обычных формах, то у них уже привычка очищать наборы, поэтому и решения в большинстве своем такие. (набор может быть не пуст если у набора в форме стоит галка использовать всегда как пример документ операция или запущен толстый клиент обычное приложение)
2) Про Период Регистрации: Почему нельзя взять его от Даты документа? Или всё же необходимо его вручную писать в документе
3) Про измерения в ВТ ДополнительныеНачисленияБазаОсновныеНачисления - указываю одно "Сотрудник", -норм отрабатывает, указываю ещё "Подразделения" - точно также )) сколько указывать то лучше
может в этой задаче нужно поставить галочку у ВР Премия "Период действия как базовый период""ПД является базовым периодом" можно включить только у ВР, имеющего ПД. У Премии не может быть ПД, так как это ВР не протяженный во времени (поэтому он находится в ДН, а не в ОН)
...
РезультатЗапроса = Запрос.Выполнить();
Движения.ОстаткиНоменклатуры.Загрузить(РезультатЗапроса.Выгрузить()); // здесь я выгружаю в ТЗ
//////////БУХ УЧЕТ////////////////////////
Движения.РегистрБухгалтерии1.Записывать = Истина;
Выборка = РезультатЗапроса.Выбрать(); //здесь инициирую выборку
Пока Выборка.Следующий() Цикл
....
Всем привет!) Моё. Рад конструктивной критике.
По поводу стажа. А как же условие: При решении задачи необходимо учитывать, что на момент начала ведения учета в информационной базе у сотрудника уже может быть стаж отличный от нуля.Всем привет!) Моё. Рад конструктивной критике.
Мельком глянул, ОУ и БУ вроде без ошибок, только ИНДЕКСИРОВАТЬ надо бы в ВТ сделать, говорят смотрят и отнимают баллы ;)
Что касается ПР - тут явно ошибки, мелкая - это Стаж нужно брать просто разницей, без Начального стажа, т.к. там сказано что Стаж на Данном Предприятии, хватит Даты Приёма в справочнике...
А крупная и фатальная ошибка - это не учитывается условие "В одном документе могут быть данные за разные расчётные периоды". И "Оклад может меняться". Вы берёте СрезПоследних на одну дату, (почему то на дату документа?) - а нужно брать СрезПоследних на Начало Расчётного Периода - для КАЖДОЙ записи, а он у них может быть разный ;)) Посмотрите как сделано, я недавно выкладывал(но там косяки но другие) или у кого-нить тут много правильных решений.
ПС: Уважаемые Alexx44ru и Jones, посмотрите плиз мой предыдущий пост - там есть ответы-вопросы..)
Спасибо, что посмотрел. Про вторую ошибку только сейчас вкурил. Со вторым билетом разобрался?Всем привет!) Моё. Рад конструктивной критике.
Мельком глянул, ОУ и БУ вроде без ошибок, только ИНДЕКСИРОВАТЬ надо бы в ВТ сделать, говорят смотрят и отнимают баллы ;)
Что касается ПР - тут явно ошибки, мелкая - это Стаж нужно брать просто разницей, без Начального стажа, т.к. там сказано что Стаж на Данном Предприятии, хватит Даты Приёма в справочнике...
А крупная и фатальная ошибка - это не учитывается условие "В одном документе могут быть данные за разные расчётные периоды". И "Оклад может меняться". Вы берёте СрезПоследних на одну дату, (почему то на дату документа?) - а нужно брать СрезПоследних на Начало Расчётного Периода - для КАЖДОЙ записи, а он у них может быть разный ;)) Посмотрите как сделано, я недавно выкладывал(но там косяки но другие) или у кого-нить тут много правильных решений.
ПС: Уважаемые Alexx44ru и Jones, посмотрите плиз мой предыдущий пост - там есть ответы-вопросы..)
сотрудник уволился потом принялся снова. Вот и начальный стаж отличный от нуля.В условии сказано: на момент начала ведения учета в информационной базе у сотрудника уже может быть стаж отличный от нуля. Значит еще никаких приемов и увольнений не было.
Очищать не очищать в тонком клиенте значения не имеет набор пуст, но поскольку большинство программистов работали на обычных формах, то у них уже привычка очищать наборы, поэтому и решения в большинстве своем такие. (набор может быть не пуст если у набора в форме стоит галка использовать всегда как пример документ операция или запущен толстый клиент обычное приложение)Да! Щас протестировал - именно так и есть, везде наборы пустые. Протестировал и в оперативном режиме - наборы ПУСТЫЕ. Смысла нет очищать, ни в ОУ ни в БУ ни в ПР. Но! В примере от создателей Сборника - в решении ОУ и БУ стоят
В задачах на ПР алгоритм в корне отличается. Там нет ни старой ни новой методики, там все, в принципе, по другому.- Да я понял, ведь вся эта заваруха связана только с КОНТРОЛЕМ ОТРИЦАТЕЛЬНЫХ ОСТАТКОВ, чтобы не уйти в МИНУС.,т.е. продать то, чего УЖЕ или ЕЩЁ нет. К Расчётам это не имеет никакого отношения. Допустить что если бы мы ничего не продавали, а только покупали(нереально конеш) - то вообще не нужны были бы блокировки и различные очистки движений, всё в плюс хоть 100 док-ов в один момент )))но это фантастика...
Сначала, в ОбрПроведения док Начисление формируются движения, тут же записываются, а после этого выполняется их Расчет (в идеале в общем модуле). Т.е. предварительно очищать и записывать движения по РР смысла нет.
В задаче внизу идет ключевая фраза: "В одном документе могут быть данные за разные расчетные периоды"Мдааа, проанализировал, ... условия задач кончено странноватые, и это специально сделано !- а подвох в данной задаче в Стаже. Все берут его как ПериодРегистрации - ДатаПриёма ! Это в принципе-правильно. Но если зарегили ЗП за январь, например ПерРег 10 февраля, а 5-го февраля у чувака стаж стал больше 3-х лет, а 1-го он уволился ))) посчитает неверно)) Тут либо Период Регистрации ставить всегда = конец ПериодаДействия(что не реально), либо Стаж нужно считать от ПериодаДействияКонец - что есть СОВСЕМ правильно! Тогда и авансом премию правильно расчитает)))!хотя премия авансом-это фантастика))) .. Только как технически это реализовать...получается что из Дополнительных Начислений мы никак не вытянем инфу ПериодаДействияКонец, значит нужно в данной задаче Премию сувать в Осн.Начисления??? Период действия Премии бессмыслен, заполнять просто ПериодомДействия Оклада. Базовый период у оклада пустой а у премии нужен.... Тогда ПерРег выносить в ТЧ или брать от ДатыДок - дело хозяйское, бывает же например регим одной датой начисления за прошлые три месяца, или у этих трёх начислений поставить разный ПерРег - от него тут ничего уже не зависит! ))
Она означает, что ПерРег у каждой записи может быть своим, то есть заполнять его из ДатыДон - это упрощение задачи.
Значит ПерРег надо делать в ТЧ и расчеты начислений выполнять от него.
В начале задачи сказано: "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается". В этом случае Подразделение должно быть реквизитом, а измерением его надо делать когда совместительство допускается.- Как уже писал alex44ru - если сделать его реквизитом - легко засунуть Иванова в 2 разных подразделения и за один и тот же период начислять Оклад, т.е. совместительство будет, и База будет за оба Подразделения. Вопрос как исключить совместительство без извращений(как предлагал alex44ru), скорее всего НЕ УКАЗЫВАТЬ Подразделение вовсе... ни там ни там) Вообще это скорее задача расчётчика следить за этим, ведь он может ввести Иванова 2 раза в одном периоде но ПО разным Графикам. Получится совместительство графиков-что далеко от реальности )) Как быть пока не ясно - на экзамене явно не успеть извращаться ..или всё таки придётся???
"ПД является базовым периодом" можно включить только у ВР, имеющего ПД. У Премии не может быть ПД, так как это ВР не протяженный во времени (поэтому он находится в ДН, а не в ОН)
Но конечно же Создатели подразумевали именно такое решение - Стаж от ПерРег, поэтому его в ТЧ...для каждой записи... Поправьте пожалуйста, если ошибаюсь..я ещё другие не видел в глаза задачи...Голова кругом !!!)))Можно сказать честно, что я думаю по поводу этого?В начале задачи сказано: "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается". В этом случае Подразделение должно быть реквизитом, а измерением его надо делать когда совместительство допускается.- Как уже писал alex44ru - если сделать его реквизитом - легко засунуть Иванова в 2 разных подразделения и за один и тот же период начислять Оклад, т.е. совместительство будет, и База будет за оба Подразделения. Вопрос как исключить совместительство без извращений(как предлагал alex44ru), скорее всего НЕ УКАЗЫВАТЬ Подразделение вовсе... ни там ни там) Вообще это скорее задача расчётчика следить за этим, ведь он может ввести Иванова 2 раза в одном периоде но ПО разным Графикам. Получится совместительство графиков-что далеко от реальности )) Как быть пока не ясно - на экзамене явно не успеть извращаться ..или всё таки придётся???
Хм ... не понимаю, почему может быть нельзя. Бывают ситуации, что нет смысла, потому что уже предварительно нужно запросом получить какую-то информацию. В данном случае склад в шапке, номенклатура и количество в ТЧ, больше ничего не надо.ОУ - "Использование менее эффективной методики проведения документов" (как же так? ведь об этом столько говорят), в отчете убрать итог количество по складу.
alex1248, хотите сказать, здесь можно контролировать остатки по НОВОЙ МЕТОДИКЕ?
Но ведь для формирования движений необходимо сначала получить Себестоимость.
Не понял Вас. Можете выложить решение с новой методикой? А то я прямо усомнился, может я чего не догоняю ))
Да, прикрепляю.
Только там ОУ без всего остального. Может быть, имеет значение увязка с БУ? Этого я пока не делал.
Тем не менее, по отдельности у меня почти все ОУ из решенных - по новой методике.А остаток количества по складу зачем из запроса убирать? Проверяю по нему, есть ли достаточное количество товара на этом складе.Из отчета.
Не надо суммировать майонез с холодильниками. :D
Не должно быть двух баз. Фактический период действия только у одной записи будет при пересечении.В начале задачи сказано: "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается". В этом случае Подразделение должно быть реквизитом, а измерением его надо делать когда совместительство допускается.- Как уже писал alex44ru - если сделать его реквизитом - легко засунуть Иванова в 2 разных подразделения и за один и тот же период начислять Оклад, т.е. совместительство будет, и База будет за оба Подразделения. Вопрос как исключить совместительство без извращений(как предлагал alex44ru), скорее всего НЕ УКАЗЫВАТЬ Подразделение вовсе... ни там ни там) Вообще это скорее задача расчётчика следить за этим, ведь он может ввести Иванова 2 раза в одном периоде но ПО разным Графикам. Получится совместительство графиков-что далеко от реальности )) Как быть пока не ясно - на экзамене явно не успеть извращаться ..или всё таки придётся???
Всем привет!) Моё. Рад конструктивной критике.Часто вижу в решениях подчиненные подсистемы:
ВЫБРАТЬ
РегистрБухгалтерииОстатки.Субконто1 КАК Товар,
РегистрБухгалтерииОстатки.Субконто2 КАК СрокГодности,
РегистрБухгалтерииОстатки.СуммаОстаток КАК Сумма,
РегистрБухгалтерииОстатки.КоличествоОстаток КАК Количество
ИЗ
РегистрБухгалтерии.РегистрБухгалтерии.Остатки({(&Период)}, Счет = ЗНАЧЕНИЕ(Плансчетов.Управленческий.Товары), , ) КАК РегистрБухгалтерииОстатки
и формула ресурса для группировки СрокГодности:ВычислитьВыражение("Сумма(Сумма)/Сумма(Количество)", "Товар") * Сумма(Количество)
В приходной накладной проверка на услугу происходит при проведении. Правильнее ограничить ввод, настроив реквизит Номенклатуа табличной части.Зачем ограничивать ввод, если "Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части."?
Субконто Дата имеет тип Дата. До недавнего времени я сам думал, что так надо делать, но нет. В книге об этом написано в трех местах. СрокГодности должен быть справочник.А я наоборот, сначала делал справочник, потом перешел-таки в экз задачах на тип Дата, в рамках экз это разрешается (только для экономии времени).
Зачем ограничивать ввод, если "Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части."?Я о приходной накладной. В рамках задачи мы не покупаем услуги, значит в табличной части приходной накладной настроить Параметр выбора: Отбор.ВидНоменклатуры(Товар). (или для этого решения Отбор.Услуга(Ложь) )
Запрос.Текст = "ВЫБРАТЬ
| ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад,
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| ПриходнаяНакладнаяСписокНоменклатуры.Ссылка КАК Регистратор,
| ПриходнаяНакладнаяСписокНоменклатуры.Количество,
| ПриходнаяНакладнаяСписокНоменклатуры.Ссылка КАК Партия,
| ПриходнаяНакладнаяСписокНоменклатуры.Количество КАК Колво,
| ПриходнаяНакладнаяСписокНоменклатуры.Сумма КАК Себестоимость,
| ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Дата КАК Период,
| ПриходнаяНакладнаяСписокНоменклатуры.СрокГодности
|ИЗ
| Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга = ЛОЖЬ
| И ПриходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
услуги игнорируются, так не лучше ли запрещать их выбирать?
Сорри, как обычно, смотрел на монитор, а думал о своем. :DЗачем ограничивать ввод, если "Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части."?Я о приходной накладной.
Если их не ограничить они будут накапливать движения по регистру. А списываем мы только товары.Сорри, как обычно, смотрел на монитор, а думал о своем. :DЗачем ограничивать ввод, если "Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части."?Я о приходной накладной.
Я в этом случае вообще ничего не делал бы - услуги для приходной накладной не предусмотрены, значит, в рамках экза пусть юзер их туда не вводит. :)
С услугами согласен. Ограничение в таблице будет правильней. Отчет БУ поправил. С регистрами не согласен. Первый регистр нужен для хранения остатков по складам, а второй для расчета себестоимости по партиям. Здесь вопрос стоит в количестве и размере запросов. Если делать по новой методике - проводим движение, записываем. Если бы нам нужно было получить только остаток, тогда по новой подходит больше. но нам нужна еще и себестоимость по партиям.Всем привет!) Моё. Рад конструктивной критике.Часто вижу в решениях подчиненные подсистемы:Документы, справочники, регистры это не подсистемы. Для этого существуют группы команд. Для приведенного примера должно быть две подсистемы и три группы команд, и никаких подчиненных подсистем. Понятно, что визуальный эффект такой же, но (на мой взгляд) это неправильное использование объектов.
- Оперативный учет
- Документы
- Справочники
- Регистры
- Бухгалтерский учет
- Документы
- Справочники
- Регистры
В приходной накладной проверка на услугу происходит при проведении. Правильнее ограничить ввод, настроив реквизит Номенклатуа табличной части.
Субконто Дата имеет тип Дата. До недавнего времени я сам думал, что так надо делать, но нет. В книге об этом написано в трех местах. СрокГодности должен быть справочник.
В БУ не настроен вид учета субконто, счет Товары не будет закрываться по сумме.
Проведение расходной налкадной. Первым делом вы получаете учетную политику, но зачем, может быть до списания себестоимости дело не дойдет. Используется старая методика проведения, а набор регистров сделан как для новой методики. Если решили списывать по старой методике, зачем тогда два регистра накопления?
Отчет БУ выглядит страшно. Соединение двух таблиц остатков, оно вообще работает? Мой текст запросаКод: [Выделить]ВЫБРАТЬ
и формула ресурса для группировки СрокГодности:
РегистрБухгалтерииОстатки.Субконто1 КАК Товар,
РегистрБухгалтерииОстатки.Субконто2 КАК СрокГодности,
РегистрБухгалтерииОстатки.СуммаОстаток КАК Сумма,
РегистрБухгалтерииОстатки.КоличествоОстаток КАК Количество
ИЗ
РегистрБухгалтерии.РегистрБухгалтерии.Остатки({(&Период)}, Счет = ЗНАЧЕНИЕ(Плансчетов.Управленческий.Товары), , ) КАК РегистрБухгалтерииОстаткиЦитироватьВычислитьВыражение("Сумма(Сумма)/Сумма(Количество)", "Товар") * Сумма(Количество)
В отчете по ОУ у вас вообще не настроены ресурсы.
Здесь как раз та ситуация, о которой я писал выше (Ответ 66). Хотя, конечно же, решение принимать вам.Если их не ограничить они будут накапливать движения по регистру. А списываем мы только товары.Сорри, как обычно, смотрел на монитор, а думал о своем. :DЗачем ограничивать ввод, если "Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части."?Я о приходной накладной.
Я в этом случае вообще ничего не делал бы - услуги для приходной накладной не предусмотрены, значит, в рамках экза пусть юзер их туда не вводит. :)
Все сотрудники работают по пятидневному графику работы, однако в решении необходимо предусмотреть возможность работы по нескольким различным графикам.с использованием функциональной опции. Расчет производится с возвратом данных в табличные части документа для последующего проведения.
Прошу покритиковать мое решение.В идеале при добавлении движения в приходной накладной, можно найти срок годности в справочнике срок годности, если его там нет - создать новый элемент справочника. Тогда не нужно его руками заполнять.
ОУ и БУ проведение расходной накладной по новой методике.
БУ использование справочника СрокГодности без непосредственной работы с этим справочником и без запросов в цикле. Пользователь выбирает дату в ТЧ документа Приходная накладная.
В ПР выполнено условиеЦитироватьВсе сотрудники работают по пятидневному графику работы, однако в решении необходимо предусмотреть возможность работы по нескольким различным графикам.с использованием функциональной опции. Расчет производится с возвратом данных в табличные части документа для последующего проведения.
В идеале при добавлении движения в приходной накладной, можно найти срок годности в справочнике срок годности, если его там нет - создать новый элемент справочника. Тогда не нужно его руками заполнять.А у меня так и сделано. Причем, нельзя искать для каждой строки, иначе это будет запрос в цикле. Сначала делается запрос по табличной части, где даты соединяются с элементами справочника СрокГодности. А потом при обходе результата запроса
Если Выборка.СрокГодностиСсылка = NULL Тогда
Движение.СубконтоДт.СрокГодности = СоздатьПолучитьНовыйЭлементСправочникаСрокГодности(Выборка.СрокГодностиДата)
КонецЕсли;
как-то так. И времени занимает немного. И самое главное, это всегда можно оправдать при защите.
Сорри не заметил)В идеале при добавлении движения в приходной накладной, можно найти срок годности в справочнике срок годности, если его там нет - создать новый элемент справочника. Тогда не нужно его руками заполнять.А у меня так и сделано. Причем, нельзя искать для каждой строки, иначе это будет запрос в цикле. Сначала делается запрос по табличной части, где даты соединяются с элементами справочника СрокГодности. А потом при обходе результата запросаКод: [Выделить]Если Выборка.СрокГодностиСсылка = NULL Тогда
как-то так. И времени занимает немного. И самое главное, это всегда можно оправдать при защите.
Движение.СубконтоДт.СрокГодности = СоздатьПолучитьНовыйЭлементСправочникаСрокГодности(Выборка.СрокГодностиДата)
КонецЕсли;
Ко второму билету уже приступал?В идеале при добавлении движения в приходной накладной, можно найти срок годности в справочнике срок годности, если его там нет - создать новый элемент справочника. Тогда не нужно его руками заполнять.А у меня так и сделано. Причем, нельзя искать для каждой строки, иначе это будет запрос в цикле. Сначала делается запрос по табличной части, где даты соединяются с элементами справочника СрокГодности. А потом при обходе результата запросаКод: [Выделить]Если Выборка.СрокГодностиСсылка = NULL Тогда
как-то так. И времени занимает немного. И самое главное, это всегда можно оправдать при защите.
Движение.СубконтоДт.СрокГодности = СоздатьПолучитьНовыйЭлементСправочникаСрокГодности(Выборка.СрокГодностиДата)
КонецЕсли;
Ко второму билету уже приступал?Сегодня запланировал делать его с секундомером :)
На мой взгляд, это имеет смысл, только если уже знаешь все нюансы, которые могут возникнуть при решении. И даже в таких случаях я при подготовке почему-то не успевал делать с такой скоростью, как в итоге получилось при сдаче (возможно, постоянно пытался дорабатывать, а на экз решил, что прежде всего сделаю по минимуму, чем в итоге ограничился, и этого вполне хватило для сдачи). :)Ко второму билету уже приступал?Сегодня запланировал делать его с секундомером :)
Какой билет попался?По моему опыту это имеет смысл только если уже знаешь все нюансы, которые могут возникнуть при решении. И даже в таких случаях я не успевал делать так, как получилось при сдаче. :)Ко второму билету уже приступал?Сегодня запланировал делать его с секундомером :)
Сборная солянка. Кстати, точно такой же набор был и до моей сдачи, и после.Какой билет попался?По моему опыту это имеет смысл только если уже знаешь все нюансы, которые могут возникнуть при решении. И даже в таких случаях я не успевал делать так, как получилось при сдаче. :)Ко второму билету уже приступал?Сегодня запланировал делать его с секундомером :)
Jones,
Не посоветуешь как лучше реализовывать условие на услугу на твой взгляд?
Допустимо ли делать так?Код: [Выделить]...
РезультатЗапроса = Запрос.Выполнить();
Движения.ОстаткиНоменклатуры.Загрузить(РезультатЗапроса.Выгрузить()); // здесь я выгружаю в ТЗ
//////////БУХ УЧЕТ////////////////////////
Движения.РегистрБухгалтерии1.Записывать = Истина;
Выборка = РезультатЗапроса.Выбрать(); //здесь инициирую выборку
Пока Выборка.Следующий() Цикл
....
Т.е. сначала ТЗ, потом выборка из одного и того же запроса
я за Итоги в запросе по БУ при проведении РасхНакладной на сдаче получил... лишние они там
по Номенклатуре общий итог , а в других остатках кол-во по 2-му субконто. вопрос зачем тебе итоги ?
А почему МассивСубконто и для общих остатков1 (по номенклатуре) и для остатков2 (Номенклатура,Срок) - совпадают? - аяяй
Движения.Основной.Записать(); - Что это такое ??? я так понимаю за это вообще сапогами по лицу.
?(Режим = РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени())); - какой момент времени? Границу Исключай и не надо записывать, может я конечно чтото не догоняю, но ты же прям движуху чистишь и записываешь, а вдруг отказ?
Часто вижу в решениях подчиненные подсистемы:Так (через подсистемы) сделано в примере решения задачи в официальном сборнике задач.Документы, справочники, регистры это не подсистемы. Для этого существуют группы команд. Для приведенного примера должно быть две подсистемы и три группы команд, и никаких подчиненных подсистем. Понятно, что визуальный эффект такой же, но (на мой взгляд) это неправильное использование объектов.
- Оперативный учет
- Документы
- Справочники
- Регистры
- Бухгалтерский учет
- Документы
- Справочники
- Регистры
Всем привет. Сделал ОУ из первого билета. Есть один небольшой вопрос. При контроле остатков по партиям по способу Чистова возникает такая ситуация: в параметре виртуальной таблицы остатков используется значение параметра МоментВремени(), но т.к. разрешено оперативное проведение, то при проведении дата все время сдвигается и в остатки попадают движения самого документа. Я убрал возможность проводить документ оперативно и проблема исчезла. Может есть более правильный способ это обойти.
Может кто-то заодно покритикует решение.
Всем привет. Сделал ОУ из первого билета. Есть один небольшой вопрос. При контроле остатков по партиям по способу Чистова возникает такая ситуация: в параметре виртуальной таблицы остатков используется значение параметра МоментВремени(), но т.к. разрешено оперативное проведение, то при проведении дата все время сдвигается и в остатки попадают движения самого документа. Я убрал возможность проводить документ оперативно и проблема исчезла. Может есть более правильный способ это обойти.
Может кто-то заодно покритикует решение.
Добрый день!
Замечания по док. "Расходная накладная" следующие:
1) Правильней делать группировку по таб. части и потом её уже обходить выборкой, отобрав только нужные товары и далее с помощью менеджера временных таблиц использовать эти данные во всех последующих запросах.
2)Учетную политику необходимо проверять в начале обработки проведения, если же она не заполнена, то выполнять дальнейшие действия нет смысла. Если она не заполнена необходимо выводить сообщение пользователю.
3) У Вас дублирование текста при проверки метода списания, это плохой тон программирования. Достаточно один раз прописать, а с помощью функции СтрЗаменить менять упорядочивание в зависимости от результата метода списания.
4) Нет блокировок по регистру себестоимости.
5) В запросе себестоимости неправильно установлен параметр период. Необходимо проверять на режим проведения.
6) По рег. себестоимости нет очистки и записи пустого набора движений, для того чтобы можно было перепровести документ.
Всем привет. Сделал ОУ из первого билета. Есть один небольшой вопрос. При контроле остатков по партиям по способу Чистова возникает такая ситуация: в параметре виртуальной таблицы остатков используется значение параметра МоментВремени(), но т.к. разрешено оперативное проведение, то при проведении дата все время сдвигается и в остатки попадают движения самого документа. Я убрал возможность проводить документ оперативно и проблема исчезла. Может есть более правильный способ это обойти.
Может кто-то заодно покритикует решение.
Добрый день!
Замечания по док. "Расходная накладная" следующие:
1) Правильней делать группировку по таб. части и потом её уже обходить выборкой, отобрав только нужные товары и далее с помощью менеджера временных таблиц использовать эти данные во всех последующих запросах.
2)Учетную политику необходимо проверять в начале обработки проведения, если же она не заполнена, то выполнять дальнейшие действия нет смысла. Если она не заполнена необходимо выводить сообщение пользователю.
3) У Вас дублирование текста при проверки метода списания, это плохой тон программирования. Достаточно один раз прописать, а с помощью функции СтрЗаменить менять упорядочивание в зависимости от результата метода списания.
4) Нет блокировок по регистру себестоимости.
5) В запросе себестоимости неправильно установлен параметр период. Необходимо проверять на режим проведения.
6) По рег. себестоимости нет очистки и записи пустого набора движений, для того чтобы можно было перепровести документ.
Спасибо за комментарии! Поправил. Надеюсь теперь все верно.
Здравствуйте, уважаемые специалисты.
Решил таки начать подготовку к экзамену. И начал с самого начала.
При решении задачи ОУ и БУ, возникла проблема. Не пойму почему не списывается толком количество, может я что-то не так понял.
Если у кого время будет, подскажите пожалуйста, что сделал не так.
Спасибо
Здравствуйте, уважаемые специалисты.
Решил таки начать подготовку к экзамену. И начал с самого начала.
При решении задачи ОУ и БУ, возникла проблема. Не пойму почему не списывается толком количество, может я что-то не так понял.
Если у кого время будет, подскажите пожалуйста, что сделал не так.
Спасибо
Приветствую!
Посмотрел Ваше решение и есть ряд замечаний. Соглашаться с моими замечаниями Ваше дело спорить не буду. И так поехали.
1) Не добавлены объекты в состав подсистем. Было очень не удобно смотреть Ваше решение, приходилось заходить во "Все функции".
2) Процедура для создания движений в бух.рег. в Приходной накладной пустая. Пришлось допилить, что бы посмотреть как списывается количество.
3) В ресурсе Количество в рег. Управленческий не выбран признак учета, галку Балансовый нужно было убрать. Признак учета Вы создали а про остальное забыли.
4) "&МоментВремени" в виртуальных таблицах. На мой взгляд нужно использовать следующие приемы:
если "старый" метод списания тогда
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
МоментИтогов = '00010101';
Иначе
МоментИтогов = МоментВремени();
КонецЕсли;
а если "новая" методика списания тогда
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
МоментИтогов = '00010101';
Иначе
МоментИтогов = новый Граница(МоментВремени(),ВидГраницы.Включая);
КонецЕсли;
или же
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.Управленческий.Записать();
МоментИтогов = '00010101';
Иначе
МоментИтогов = новый Граница(МоментВремени(),ВидГраницы.Включая);
КонецЕсли;
и так же по "новой" методике списания.
5) В запросах для документа Расходная накладная Вы создаете лишние таблицы. За это снимаю баллы.
6) Нет массива с субконтами для рег.Управленческий.
7) Количество в ОУ не правильно списывалось из за отсутствия условия в запросе (в котором проверяется не ушли ли в минус) "ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) < 0".
Вроде все. Может есть что то еще но я заметил только такие нюансы.
Здравствуйте, уважаемые специалисты.
Решил таки начать подготовку к экзамену. И начал с самого начала.
При решении задачи ОУ и БУ, возникла проблема. Не пойму почему не списывается толком количество, может я что-то не так понял.
Если у кого время будет, подскажите пожалуйста, что сделал не так.
Спасибо
Здравствуйте, уважаемые специалисты.
Решил таки начать подготовку к экзамену. И начал с самого начала.
При решении задачи ОУ и БУ, возникла проблема. Не пойму почему не списывается толком количество, может я что-то не так понял.
Если у кого время будет, подскажите пожалуйста, что сделал не так.
Спасибо
Нашел еще одну ошибку. В задаче по БУ не правильно настроен ресурс Сумма. Так как в задаче есть фраза "Себестоимость определяется как средняя по товару по всем срокам годности" то необходимо было еще создать "признак учета субконто" при этом галочка балансовый остается включенной. В связи с этим ваш запрос с получение остатков не подходит.
Скачайте решения Sae в разделе Актуальные билеты на странице 58. Они могут вам помочь в подготовке.
Здравствуйте, уважаемые специалисты.
Решил таки начать подготовку к экзамену. И начал с самого начала.
При решении задачи ОУ и БУ, возникла проблема. Не пойму почему не списывается толком количество, может я что-то не так понял.
Если у кого время будет, подскажите пожалуйста, что сделал не так.
Спасибо
Мое решение. Плиз критика.Посмотрел только СПР, и без учета условия по периоды. В целом понравилось, есть некоторые моменты по-мелочи.
Хз насколько правильно сделал СПР с этим условием про разные периоды. Начало и конец оклада можно ввести любой месяц, добавил только месяц базы в доп. начисления.
Мое решение. Плиз критика.
Хз насколько правильно сделал СПР с этим условием про разные периоды. Начало и конец оклада можно ввести любой месяц, добавил только месяц базы в доп. начисления.
Движения.Управленческий.Записывать = Истина;будет работать всегда или лучше использовать отбор по регистратору?
Движения.Управленческий.Прочитать();
Движения.Управленческий.УстановитьАктивность(НЕ ПометкаУдаления);
Движения.Записать();
Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускаетсяподразумевает, что Подразделение не нужно?
Доброго времени суток! Наконец то осилил первый билет, прошу посмотреть и раскритиковать.
По ходу решения возникло несколько вопросов:
1. Нужно ли индексировать существующие и добавляемые измерения в регистрах накопления?
2. Нужно ли на эти же измерения накладывать запрет на незаполненные значения?
3. Насколько критично в СПР выносить расчет в общий модуль? Сделал все в процедуре проведения НачислениеЗарплаты, могут снять баллы за это?
4. В ОУ в Приходной не ставлю проверку на Услуги, так как в тексте задачи не сказано явно, что Услуги поступают, вроде бы только оказываются фирмой. Но, если возможно поступление Услуг, то они будут накапливаться в регистре, т.е. проверку надо делать. Кто как считает?
5. Просьба особо проверить параметры виртуальных таблиц в запросах к регистрам бухгалтерии (отчет и проведение расходной накладной), все ли параметры правильно указаны?
Доброго времени суток! Наконец то осилил первый билет, прошу посмотреть и раскритиковать.
По ходу решения возникло несколько вопросов:
1. Нужно ли индексировать существующие и добавляемые измерения в регистрах накопления?
2. Нужно ли на эти же измерения накладывать запрет на незаполненные значения?
3. Насколько критично в СПР выносить расчет в общий модуль? Сделал все в процедуре проведения НачислениеЗарплаты, могут снять баллы за это?
4. В ОУ в Приходной не ставлю проверку на Услуги, так как в тексте задачи не сказано явно, что Услуги поступают, вроде бы только оказываются фирмой. Но, если возможно поступление Услуг, то они будут накапливаться в регистре, т.е. проверку надо делать. Кто как считает?
5. Просьба особо проверить параметры виртуальных таблиц в запросах к регистрам бухгалтерии (отчет и проведение расходной накладной), все ли параметры правильно указаны?
Бегло глянул, пару моментов: по БУ - делайте Если Отказ Тогда Продолжить, за условием о нехватке, иначе у вас к примеру 100000 позиций, 1-ая не хватает, всё, Отказ = истина, а остальные все норм хватает, и у вас за зря 99999 итераций пройдёт с расчетом себестоимости.
Ну и пресловутая "проблема копеек" не реализована.
в рамках экзамена:
1) не нужно
2)не нужно
3) критично, т.к. в этой задаче изменение 100%. Будете делать форму, получать объект, его движения , и вызывать Общий Модуль расчета, грузить в ТЧ результат. (по кнопке Рассчитать результат д.б. в ТЧ документа появится.)
4) Отсеивайте в параметрах выбора: Отбор.ВидНоменклатуры(Товар)
5) почему массив субконто не заполняете? нужно, влияет на скорость запроса к РБ
По остальным пунктам замечания/советы понятны, будем исправлять. Спасибо!
весьма неплохое решение билета, и все таки СПР выносите в общий модуль;-)
весьма неплохое решение билета, и все таки СПР выносите в общий модуль;-)
Zorky, спасибо, что остались на форуме и комментируете решения после того как сдали
прошу прокомментируйте моё решение или хотя бы ответьте на вопросы в моём сообщении
на счет ПериодаРегистрации в тч документа НачислениеЗарплаты я видела, что это не очень приветствуется на экзамене, и нужно делать для ВР, используемых ПериодДействия, ПериодДействияНачало и ПериодДействияКонец, и правильно ли я поняла, что для Премии можно делать ПериодРегистрации в тч?
нет, период регистрации берите начало месяца Даты документа, или можно в шапке. Для премии заведите реквизит типа Дата и назовите как нибудь, типа Месяц начисления, ну или по другому. Он не будет влиять на ПР, ПР всегда один у всего Дока, а он нужен для условия "разные расчетные периоды", и от него уже и отсчитывайте базовый период.
ПС: скоро времени совсем не будет....)))Начали подготовку к другой аттестации?
нет, период регистрации берите начало месяца Даты документа, или можно в шапке. Для премии заведите реквизит типа Дата и назовите как нибудь, типа Месяц начисления, ну или по другому. Он не будет влиять на ПР, ПР всегда один у всего Дока, а он нужен для условия "разные расчетные периоды", и от него уже и отсчитывайте базовый период.
спасибо за ответ, всё стало гораздо понятней в этих СЛОЖНЫХ периодических расчетах))ЦитироватьПС: скоро времени совсем не будет....)))Начали подготовку к другой аттестации?
можно и так сказать, и параллельно с работой...К какой, если не секрет? Я бух планирую, в перспективе - ЗУП.
можно и так сказать, и параллельно с работой...К какой, если не секрет? Я бух планирую, в перспективе - ЗУП.
Мое решение. Плиз критика.Посмотрел только СПР, и без учета условия по периоды. В целом понравилось, есть некоторые моменты по-мелочи.
Хз насколько правильно сделал СПР с этим условием про разные периоды. Начало и конец оклада можно ввести любой месяц, добавил только месяц базы в доп. начисления.
1.В процедуре проведения
Движения.ОсновныеНачисления.Записать();
Движения.ДополнительныеНачисления.Записать();
можно было заменить на Движения.Записать() и сэкономить немного времени, благо что вариант через название регистра тут не нужен, т.к. тут не нужно указывать параметры.
2.Расчет нужно перенести в общий модуль, вот за это могут немного снизить оценку.
3. Насколько я понимаю, в подобных констукциях тоже должна быть проверка на null после функции, ведь теоретически в итоге тут тоже может получится null. Или нет?
| МАКСИМУМ(ШкалаПроцентов.Стаж) КАК Стаж, МАКСИМУМ(isnull(ШкалаПроцентов.Стаж,0)) КАК Стаж,
4.При записи рассчитанных доп.начислений не нужно писать параметр Истина, ведь у них нет ФПД,не? Движения.ДополнительныеНачисления.Записать(, Истина);
И вопрос по проектированию: А можно ли со стажем и датой приема поступить было несколько проще - указать их в справочнике Сотрудников и брать их оттуда? По этому поводу что-то слышно было по информации с экзаменов?
Мое решение. Плиз критика.
Хз насколько правильно сделал СПР с этим условием про разные периоды. Начало и конец оклада можно ввести любой месяц, добавил только месяц базы в доп. начисления.
Доброго дня!
Несколько предложений по Вашему решению:
1. Я бы сделал сначала проверку на Метод списания. В вашем варианте, если не установлен, то получается зря движения по РН "ОстаткиНоменклатуры" делали, а в документе может быть много записей.
2. Зачем таскать признак услуги? Почему в первом же пакете запроса не поставить условие
"ГДЕ НЕ РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Вид = ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Услуга)" ?
3. Есть ли смысл делать проверку при списании партий? Уже проверили по ОстаткиТоваров, что товара хватает.
4. Во многих решениях видел - в документе Операция при установке пометки удаления на документ для набора записей снимается активность (и наоборот). Это примерно такой код в модуле документа:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Проводки = Движения.Управленческий;
Проводки.Записывать = Истина;
Если НЕ Проводки.Модифицированность() И НЕ ЭтоНовый() Тогда
Проводки.Прочитать();
КонецЕсли;
Для каждого Проводка Из Проводки Цикл
Проводка.Период = Дата;
Если НЕ ЭтоНовый() И ПометкаУдаления <> Ссылка.ПометкаУдаления Тогда
Проводка.Активность = НЕ ПометкаУдаления;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
5. Соглашусь с Гакусеем - начальный стаж и дата приема на работу скорее всего неизменяемая информация и их можно хранить в реквизитах справочника ФизическиеЛица.
Посмотрите билетик, пожалуйста. Первый раз всё в кучу собрала. Буду рада любой критики и замечаниям! Заранее большое спасибо!Нет признака учета субконто "Суммовой". Он требуется в этой задаче по условию ("Себестоимость определяется как средняя по товару по всем срокам годности.
Выгрузка в dt
Движения.ОстаткиНоменклатуры.Записать(); //очищаем движения (нужно для перепроведения)
не нужна. Почитайте статью Павла Чистова http://1c.chistov.pro/2013/07/blog-post_25.html там все понятно и доступно про проведение по разным методикам. И запрос по остаткам весьма оригинальный - зачем в запрос передавать массив с номенклатурой, когда в БД есть сам документ?Сообщение.Текст = "Недостаточно номенклатуры "+ВыборкаДетальныеЗаписи.Номенклатура+" "+(-ВыборкаДетальныеЗаписи.Остаток);
неявный запрос, лучше взять Представление от Номенклатуры в запросе и его выводить в Сообщении.Движения.ОстаткиНоменклатуры.Записать();не нужны. Главное флаги "Записывать=Истина" не забыть выставить.
Движения.ПартииНоменклатуры.Записать();
3. формируем из результата запроса движения по РН "ОстаткиНоменклатуры", записываем, не забываем про блокировкуМожете поподробнее раскрыть? Я думал, что блокировки для старой и новой методик выглядят след. образом:
Движения.Регистр.Записывать = Истина;
Движения.Регистр.БлокироватьДляИзменения = Истина; //используем БлокироватьДляИзменения
//Дальше код по записи движений и контролю остатков
Движения.Регистр.Записывать = Истина;
Блокировка = Новый БлокировкаДанных; //накладываем явную блокировку
//Дальше стандартный запрос к БД по партиям, контроль остатков, расчет себестоимости и запись движений
При установленном свойстве "Удалять автоматически" в самом начале транзакции проведения система автоматически записывает пустые наборы записей в регистры, тем самым очищая старые движения. Это физически происходит, запись, со всеми вытекающими транзакциями и блокировками.Видимо это ещё с 8.1 у меня привычка всегда руками очищать движения. Спасибо Вам большое
Движения.ПартииНоменклатуры.Записать();
Теперь при перепроведении система подцепляет предыдущие движения документа по данному регистру... Что-то я совсем запустался.SAM, спасибо! Всё понятно, кроме3. формируем из результата запроса движения по РН "ОстаткиНоменклатуры", записываем, не забываем про блокировкуМожете поподробнее раскрыть? Я думал, что блокировки для старой и новой методик выглядят след. образом:
P.S. по поводу Движения.Регистр.Записать(), действительно, в голове каша была. В статье написано следуюущее:ЦитироватьПри установленном свойстве "Удалять автоматически" в самом начале транзакции проведения система автоматически записывает пустые наборы записей в регистры, тем самым очищая старые движения. Это физически происходит, запись, со всеми вытекающими транзакциями и блокировками.Видимо это ещё с 8.1 у меня привычка всегда руками очищать движения. Спасибо Вам большое
UPD.: убралКод: [Выделить]Движения.ПартииНоменклатуры.Записать();
Теперь при перепроведении система подцепляет предыдущие движения документа по данному регистру... Что-то я совсем запустался.
Как при старой методике при перепроведении документа очищать предыдущие движения без Записать() ?
Движения.Регистр.Записывать = Истина;будет ошибкой для новой методики, т.к. мы пишем движения явно, а затем, по окончанию транзакции, платформой будут писаться все движения с установленным флагом, т.е. запись еще раз.
Движения.Регистр.Записать();
Если РежимПроведения=РежимПроведенияДокумента.Оперативный Тогда
...
КонецЕсли;
однако на форуме я видел сообщения, что на аттестации такой вариант не понравился принимающему.Запрос.УстановитьПараметр("Момент",?(РежимПроведение=РежимПроведенияДокумента.Оперативный,Неопределено,Новый Граница(МоментВремени(),ВидГраницы.Включая)));
Движения.Регистр.БлокироватьДляИзменения = Истина; //Блокируем старые движения
//Формируем новые движения
Движения.Регистр.Записать(); //Явно записываем их
//Делаем проверки
Движения.Регистр.Записывать = Истина; //устанавливаем маркер записи, в принципе неважно где, можно хоть в самом конце после формирования движений
Движения.Регистр.БлокироватьДляИзменения = Истина; //Блокируем старые движения
Движения.Регистр.Записать() //Очищаем движения, чтобы они не попадали в запрос
//Формируем движения и проверки
Еще замечание - при оперативном проведении запрос выполнять не на пустую дату, а в качестве момента времени передавать Неопределено.А почему? Разве для платформы есть какая-то существенная разница? Ведь всё равно Неопределено будет преобразовано в пустую дату
Т.е. при новой методикеКод: [Выделить]Запрос.УстановитьПараметр("Момент",?(РежимПроведение=РежимПроведенияДокумента.Оперативный,Неопределено,Новый Граница(МоментВремени(),ВидГраницы.Включая)));
Доброго времени всем )Посмотрел бегло,
посмотрите плз мой вариант. Буду признателен за комменты
В БУ отключают ПУС Суммовой по срокам годности, из-за этого меняются запросы и прочее. В БУ отчете не учтено условие, что сумма должна формироваться специфически.так ведь если оставить только обороты на сроках годности, то остатка в разрезе этого субконто не видно будет. Не понятно что списывать и как строить отчет в таком случае
ПУС и только обороты - совершенно разные вещи.я из региона, так что подискутировать не смогу )) буду сдавать дистанционно )
Насколько я понял на индексирование смотрят на уровне "чтобы было" . Ну а если хошь подискутировать с преподом, то такая возможность у тебя будет конечно ;D
Да, к только оборотам не имеют отношения. Самостоятельная фенькаПУС и только обороты - совершенно разные вещи.Признак учета субконто, по-другому как еще расшифровать?
Насколько я понял на индексирование смотрят на уровне "чтобы было" . Ну а если хошь подискутировать с преподом, то такая возможность у тебя будет конечно ;D
ПУС и только обороты - совершенно разные вещи.я из региона, так что подискутировать не смогу )) буду сдавать дистанционно )
Насколько я понял на индексирование смотрят на уровне "чтобы было" . Ну а если хошь подискутировать с преподом, то такая возможность у тебя будет конечно ;D
зы хм, ПУС - не понял я что это такое. Признак учета субконто, по-другому как еще расшифровать?
Себестоимость = Выборка.СуммаОст * Списывать/ Выборка.КолВоОст;
где Выборка.СуммаОст - общая стоимость, Списывать - колво к списанию в тек. партии, а Выборка.КолВоОст - общий остаток
с признаками учета вроде все понятно. Непонятно как избавиться от копеек:По этой формуле ни разу копейки не зависали, все в 0 всегда уходило. Или я как то не так тестировал?
Если брать формулуКод: [Выделить]Себестоимость = Выборка.СуммаОст * Списывать/ Выборка.КолВоОст;
где Выборка.СуммаОст - общая стоимость, Списывать - колво к списанию в тек. партии, а Выборка.КолВоОст - общий остаток
По этой формуле ни разу копейки не зависали, все в 0 всегда уходило. Или я как то не так тестировал?приложил скрины. Сумма по партиям - 3350, куплено 12 шт. Продаем 12. В итоге 1 копейки не хватает до полной суммы себестоимости
По этой формуле ни разу копейки не зависали, все в 0 всегда уходило. Или я как то не так тестировал?приложил скрины. Сумма по партиям - 3350, куплено 12 шт. Продаем 12. В итоге 1 копейки не хватает до полной суммы себестоимости
Движение.Количество = Мин(Списать, ВыборкаДетальные.КоличествоОстаток);
Движение.Сумма = Движение.Количество * ВыборкаДетальные.СуммаОстаток / ВыборкаДетальные.КоличествоОстаток;
как раз пишу эту часть:
Если Ксписанию=Выборка.Количество Тогда
СС=Выборка.Сумма;
Иначе
СС=Ксписанию/Выборка.Количество*Выборка.Сумма;
КонецЕсли;
Движение.Количество = Мин(Списать, ВыборкаДетальные.КоличествоОстаток);
Движение.Сумма = Движение.Количество * ВыборкаДетальные.СуммаОстаток / ВыборкаДетальные.КоличествоОстаток;
с копейками разобрался. спасибо, ребят.В чем косяк был?
косяк мой был в том, что от остатка суммы к списанию отнимал рассчитанную себестоимость. А надо отнимать сумму, которая уже в проводке. На всякий случай кодс копейками разобрался. спасибо, ребят.В чем косяк был?
СебестоимостьСредняя = ?(НЕ Выборка.КолвоОст, 0, Выборка.СуммаОст / Выборка.КолВоОст);
ОсталосьСписатьКолво = Выборка.КоличествоДок;
ОсталосьСписатьСумма = ?(Выборка.КоличествоДок = Выборка.КолВоОст, Выборка.СуммаОст, СебестоимостьСредняя * Выборка.КоличествоДок);
ВыборкаНоменклатура = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ОсталосьСписатьКолво > 0 И ВыборкаНоменклатура.Следующий() Цикл
Проводка = Движения.РегистрБухгалтерии.Добавить();
Проводка.Период = Дата;
Проводка.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Проводка.СчетКт = ПланыСчетов.Управленческий.Товары;
Проводка.СубконтоКт.Номенклатура = ВыборкаНоменклатура.Номенклатура;
Проводка.СубконтоКт.СрокГодности = ВыборкаНоменклатура.СрокГодности;
Списывать = Мин(ОсталосьСписатьКолво, ВыборкаНоменклатура.КолвоОст);
Себестоимость = ?(ОсталосьСписатьКолво = ВыборкаНоменклатура.КолвоОст, ОсталосьСписатьСумма, СебестоимостьСредняя * Списывать);
Проводка.КоличествоКт = Списывать;
Проводка.Сумма = Себестоимость;
ОсталосьСписатьКолво = ОсталосьСписатьКолво - Списывать;
ОсталосьСписатьСумма = ОсталосьСписатьСумма - Проводка.Сумма;
КонецЦикла;
контрольный. гляньте кому не сложно, плз.
остался один вопрос - не формируются задачи автоматически. 2 раза перенастроил все. не понимаю почему
Ну вот и пришло время решать билеты на время. Первый пошел)) 4 часа 20 минут - на все задания, включая внесение тестовых данных, настройка отображения отчетов как в задании - считаю справился неплохо по времени, хотя билет, конечно, не самый трудный. Был бы очень признателен за конструктивную критику моего решения!
Движения.Записать();
точно не нужна. Она и не запишет ничего.SAM, во-первых, спасибо что и после сдачи появляетесь на этом форуме и помогаете тем, кто еще не получил сертификат.Ну вот и пришло время решать билеты на время. Первый пошел)) 4 часа 20 минут - на все задания, включая внесение тестовых данных, настройка отображения отчетов как в задании - считаю справился неплохо по времени, хотя билет, конечно, не самый трудный. Был бы очень признателен за конструктивную критику моего решения!
На мой взгляд, в целом все ок. Два момента только бросились в глаза:
1. В проведении расходной накладной строка 19Код: [Выделить]Движения.Записать();
точно не нужна. Она и не запишет ничего.
2. Зачем из модуля документа "Начисление зарплаты" в общий модуль передавать ссылку, а потом от ссылки читать из базы движения? Лишнее чтение из базы, в модуле документа есть универсальная коллекция Движения, имхо, лучшее эту коллекцию и передать (и из нее же взять ссылку на документ)
И самое главное - не сделали кнопку "Рассчитать" в документе НачислениеЗ/п, советую сделать - я попал на 2 балла из-за этой кнопки.
Движения.ТоварыНаСкладах.Записать();
Передача ссылки а не коллекции движений в общий модуль - в принципе так видел во многих решениях + Чистов именно так реализовывает в своих курсах, думаю это не принципиальный вопрос, буду уже делать так как набил руку.Движения.ТоварыНаСкладах.Записать();
так тем более не нужно делать - это противоречит новой методике проведения, которую вы применяете. В данном случае надо сформировать движения, записать их и потом проверить на отрицательные остатки. Предварительно записывать пустые (очищенные) движения не нужно - это лишняя запись в базу.В документе Начисление зарплаты на форме реализовать кнопку "Рассчитать" для предварительного заполнения результатов расчета в форме.... Должен ли проводиться документ по этой кнопке, или нужно как то провести вычисления и заполнить столбец "Результат" на форме - тут я не могу подсказать, если бы знал - сделал бы на аттестации ;D
Осмелюсь с Вами поспорить.Код: [Выделить]Движения.ТоварыНаСкладах.Записать();
так тем более не нужно делать - это противоречит новой методике проведения, которую вы применяете. В данном случае надо сформировать движения, записать их и потом проверить на отрицательные остатки. Предварительно записывать пустые (очищенные) движения не нужно - это лишняя запись в базу.
Движения.ОстаткиТоваров.БлокироватьДляИзменения=Истина;
Движения.ОстаткиТоваров.Очистить();
Осмелюсь с Вами поспорить.Код: [Выделить]Движения.ТоварыНаСкладах.Записать();
так тем более не нужно делать - это противоречит новой методике проведения, которую вы применяете. В данном случае надо сформировать движения, записать их и потом проверить на отрицательные остатки. Предварительно записывать пустые (очищенные) движения не нужно - это лишняя запись в базу.
Перед записью пустого набора устанавливается свойство БлокироваДляИзмерения в Истина.Код: [Выделить]Движения.ОстаткиТоваров.БлокироватьДляИзменения=Истина;
Движения.ОстаткиТоваров.Очистить();
Здесь на одной из веток шло бурное обсуждение установки свойства БлокироватьДляИзменения в Истина и дальнейшая запись пустого набора. Это делается для того чтобы заблокировать регистр по тем позициям, что были в документе ранее (так как транзация может завершиться неуспешно и движения в регистре остануться старые, мы должны обеспечить блокировку и этих позиций)
Я руководствовался статьей Павла Чистова http://1c.chistov.pro/2013/07/blog-post_25.html (http://1c.chistov.pro/2013/07/blog-post_25.html) явно в статье нет ответа на Ваш вопрос, но есть ниже в комментариях.Не нашел подтверждение своих слов. Так что судя по всему Вы правы - для новой методики проведения, не следуют записывать пустой набор записей, блокировка по удаленным позициям из документа будет осуществляться в дальнейшем при записи набора записей. Спасибо!
Вкратце: очищать движения, блокировать для изменения и записывать нужно в начале проведения по старой методике. По новой методике - формируете движения, устанавливаете БлокироватьДляИзменения=Истина и пишите. Движения, которые возможно были в базе до записи набора, тоже заблокируются.
Спасибо , freemaestro , что откликнулсяСтранно, прежде, чем добраться до сообщений, пришлось исправлять ошибки в коде.
я поменяла , как ты советуешь
но , к сожалению у меня теперь ни один документ не проводится , в сообщениях ошибки числа намного больше , чем в приходной накладной :(
Сообщение.Текст = "Не хватает товара" + Выборка.Материал.Представление +" не хватает "+ (-Выборка.КоличествоОстаток);Что это такое у вас - Выборка.Материал.Представление? Как у вас вообще что-то проводится с таким кодом? :-\
Но плохо не это :D , а то, что вы обрабатываете оперативное проведение, а на экзамене этого делать НЕ НАДО.
Недавно в "Результатах сдачи ..." писали, что, по крайней мере, за это делают замечание, т.к. по условиям экзамена остатки надо получать на момент проведения документа. Некоторые, кроме того, вообще запрещают оперативное проведение всех документов. :)
Добрый день, alex1248 !Вот сообщение, где сказано (в самом конце), что за это делали замечания:Но плохо не это :D , а то, что вы обрабатываете оперативное проведение, а на экзамене этого делать НЕ НАДО.
Недавно в "Результатах сдачи ..." писали, что, по крайней мере, за это делают замечание, т.к. по условиям экзамена остатки надо получать на момент проведения документа. Некоторые, кроме того, вообще запрещают оперативное проведение всех документов. :)
Вот я хотел уточнить насчет оперативного проведения - это где-то прописано в официальных правилах, что оперативное проведение вообще не нужно обрабатывать ? Я к примеру, не увидел этого. И в курсах 1С по подготовке к экзамену этого нет, там обрабатывают преподаватели оперативное проведение.
На самом деле, я за то, чтобы его не обрабатывать, а вообще запретить - это упростило бы жизнь.
Спасибо за консультацию
поняла и исправила )
а можете какую-нибудь литературу или уроки подсказать , чтобы лучше в 1с разобраться ??
половину Радченко прорешала , но мало что запоминается :(
Посмотрел последние решение задач по БУ.
Вопрос: Для чего 2 левых соединения используются?
(В одном получение себестоимости, а во втором количество и сумму в разрезе номенклатуры и срока годности?)
А ты можешь текст запроса привести?
Посмотрел последние решение задач по БУ.
Вопрос: Для чего 2 левых соединения используются?
(В одном получение себестоимости, а во втором количество и сумму в разрезе номенклатуры и срока годности?)
Добрый день, xXeNoNx!
А ты можешь текст запроса привести?
Правда потом в обработке проведения придется писать Если ВЫборкаДетЗап.КолвоОстаток=0 Тогда Продолжить.
есть тут профи? кто в курсе почему все соединяются с двумя таблицами, а не с одной? Не хотелось бы чтоб ответ на этот вопрос мне сказали на экзамене
есть тут профи? кто в курсе почему все соединяются с двумя таблицами, а не с одной? Не хотелось бы чтоб ответ на этот вопрос мне сказали на экзамене
есть тут профи? кто в курсе почему все соединяются с двумя таблицами, а не с одной? Не хотелось бы чтоб ответ на этот вопрос мне сказали на экзамене
1)автоупорядочивание не стоит.
2)попробуйте ввести срок годности 05.01.2015 и 01.01.2016. Что раньше спишется.
Расчет себестоимости для меня тяжеловато написан, лень разбирать
за 2 соединения вместо одного на экзамене наказывают?На мой взгляд, в данном случае можно применить снижение оценки "за неэффективное решение" (если оно таково, я думаю, так и есть, но ошибаться могу).
Вроде как в рекомендации к сдаче экзамену есть пункт про упрощение решения...В данном случае имеется ввиду упрощение моделируемой ситуации. :)
И Гончаров об этом говорил.
попался этот билет. все сделал кроме з/п. Никак не хотела проводиться НачислениеЗарплаты.
Вылезла ошибка :
-Недопустимое значение параметра (параметр номер '2') (Необходим пересчет фактического периода действия)'
на: Движения.ДопНачисления.Записать(,Истина);
Я так и не успел разобраться что ей нужно. Первоначальную запись сделал. Вроде все как обычно
почему все используют в запросе:че сразу все-то? я наверное дни/365 использовал с округлением куда надо. Или месяцы / 12, т.к. в днях может быть проблема с 365/366
РАЗНОСТЬДАТ(НачислениеЗарплатыДопНачисления.Сотрудник.ДатаПриема, &ПериодРегистрации, ГОД)
//если от 2016.01.01 вычесть 2015.12.31 то вернется 1 год.
Никто не знает:Ни в одном отчете не создавал форму отчета, отчеты в этих задачах все простые. Сложные вот только начал делать, по спецзаказам от бухов )
-В условии сказано что отчет должен быть строго за месяц определенного года (январь,февраль). Никак попроще это нельзя решить, не создавая формуОтчета и реквизитов? Нет же никаких хитрых настроек?
попался этот билет. все сделал кроме з/п. Никак не хотела проводиться НачислениеЗарплаты.
Вылезла ошибка :
-Недопустимое значение параметра (параметр номер '2') (Необходим пересчет фактического периода действия)'
на: Движения.ДопНачисления.Записать(,Истина);
Я так и не успел разобраться что ей нужно. Первоначальную запись сделал. Вроде все как обычно
Из синтакс-помощника
"<ТолькоЗапись> (необязательный)
Тип: Булево.
Определяет режим записи набора. Истина - производится только запись набора; Ложь - производится пересчет фактического периода действия и ввод записей перерасчетов.
По умолчанию при записи набора производится не только собственно запись, но и пересчет периода действия (для регистров расчета с поддержкой периода действия) и ввод записей перерасчета (если необходимо).
Внимание! Значение Истина для параметра можно задавать только при записи уже записанного набора записей и только в том случае, если в наборе записей изменялись только ресурсы и реквизиты. Если в наборе записей изменялись любые другие поля записей набора, то запись набора с параметром, равным Истина не выполняется и выдается сообщение об ошибке.
Значение по умолчанию: Ложь. "
Необходимо было писать так
Движения.ДопНачисления.Записать();
Добрый день!А как между собой связаны кнопка "Рассчитать" и механизм перерасчетов? Я что то не понял мысли
Прошу пояснить кто знает)) Что за волшебная кнопка рассчитать о которой пишут?
Я думал что это кнопка, должна пере провести документы которые влияют на сформированную премию. В задание (Механизм перерасчетов в рамках данной задачи использовать не надо)
Добрый день!А как между собой связаны кнопка "Рассчитать" и механизм перерасчетов? Я что то не понял мысли
Прошу пояснить кто знает)) Что за волшебная кнопка рассчитать о которой пишут?
Я думал что это кнопка, должна пере провести документы которые влияют на сформированную премию. В задание (Механизм перерасчетов в рамках данной задачи использовать не надо)
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Метод = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Новый Граница(МоментВремени())).МетодСписания; // быстрее в 2 раза чем через запрос
Если ЗначениеЗаполнено(Метод) Тогда
Если Метод = Перечисления.МетодСписания.LIFO Тогда
Порядок = " Убыв";
Иначе
Порядок = "";
КонецЕсли;
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Заполните Учетную политику!";
Сообщение.Сообщить();
Отказ = Истина;
Возврат;
КонецЕсли;
//- Получить учетную политику
//+ Получаем номенклатуру без услуг Делаем движения по отаткам
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ
| РасходнаяНакладнаяТовар.Номенклатура,
| СУММА(РасходнаяНакладнаяТовар.Количество) КАК Количество
|ПОМЕСТИТЬ ДокТЧ
|ИЗ
| Документ.РасходнаяНакладная.Товар КАК РасходнаяНакладнаяТовар
|ГДЕ
| РасходнаяНакладнаяТовар.Ссылка = &Ссылка
| И НЕ РасходнаяНакладнаяТовар.Номенклатура.Услуга
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяТовар.Номенклатура,
| РасходнаяНакладнаяТовар.Ссылка.Склад
|
| ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДокТЧ.Номенклатура,
| ДокТЧ.Количество КАК Количество
|ИЗ
| ДокТЧ КАК ДокТЧ";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.ВыполнитьПакет();
СписатьОстатки = РезультатЗапроса[1].Выбрать();
Движения.ОстаткиТоваров.Записывать = Истина;
Движения.ОстаткиТоваров.Очистить();
Пока СписатьОстатки.Следующий() Цикл
Движение = Движения.ОстаткиТоваров.ДобавитьРасход();
Движение.Период = Дата;
Движение.Склад = Склад;
Движение.Номенклатура = СписатьОстатки.Номенклатура;
Движение.Количество = СписатьОстатки.Количество;
КонецЦикла;
Движения.ОстаткиТоваров.БлокироватьДляИзменения = Истина;
Движения.Записать();
//- Получаем номенклатуру без услуг Делаем движения по отаткам
//+ Проверяем отриц остатки
Запрос.Текст = "ВЫБРАТЬ
| Остатки.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
| Остатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(
| &ТочкаИтогов,
| Номенклатура В
| (ВЫБРАТЬ
| ДокТЧ.Номенклатура
| ИЗ
| ДокТЧ КАК ДокТЧ)
| И Склад = &Склад) КАК Остатки
|ГДЕ
| Остатки.КоличествоОстаток < 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДокТЧ.Номенклатура
|ИЗ
| ДокТЧ КАК ДокТЧ";
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("ТочкаИтогов", Новый Граница(МоментВремени(), ВидГраницы.Включая));
ПакетРезультатов = Запрос.ВыполнитьПакет();
РезультатЗапроса = ПакетРезультатов[0];
Если НЕ РезультатЗапроса.Пустой() Тогда
Отказ = Истина;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Мало товара " + Выборка.НаименованиеПолное + " на складе - "+ Склад +" нужно еще " + (-Выборка.КоличествоОстаток);
Сообщение.Сообщить();
КонецЦикла;
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
//- Проверяем отриц остатки
//+ Блокировка Создаем движения в регистре партий
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.СтоимостьТоваров");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = ПакетРезультатов[1] ;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.СтоимостьТоваров.Очистить();
Движения.СтоимостьТоваров.БлокироватьДляИзменения = Истина;
движения.СтоимостьТоваров.Записать();
КонецЕсли;
Запрос.Текст = "ВЫБРАТЬ
| ДокТЧ.Номенклатура КАК Номенклатура,
| ДокТЧ.Количество КАК Количество,
| СтоимостьТоваров.Партия,
| СтоимостьТоваров.КоличествоОстаток,
| СтоимостьТоваров.СтоимостьОстаток
|ИЗ
| ДокТЧ КАК ДокТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьТоваров.Остатки(
| &ТочкаИтоговДляСебестоимости,
| Номенклатура В
| (ВЫБРАТЬ
| ДокТЧ.Номенклатура
| ИЗ
| ДокТЧ КАК ДокТЧ)) КАК СтоимостьТоваров
| ПО ДокТЧ.Номенклатура = СтоимостьТоваров.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| СтоимостьТоваров.Партия.МоментВремени " + Порядок +"
|ИТОГИ
| МИНИМУМ(Количество)
|ПО
| Номенклатура";
Запрос.УстановитьПараметр("ТочкаИтоговДляСебестоимости", МоментВремени());
Движения.СтоимостьТоваров.Очистить();
РезультатЗапроса = Запрос.Выполнить();
ВыборкаТовар = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаТовар.Следующий() Цикл
ОсталосьСписать = ВыборкаТовар.Количество;
ВыборкаПартия = ВыборкаТовар.Выбрать();
Пока ВыборкаПартия.Следующий() И ОсталосьСписать <> 0 Цикл
Списать = МИН(ОсталосьСписать, ВыборкаПартия.КоличествоОстаток);
Движение = Движения.СтоимостьТоваров.ДобавитьРасход();
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаПартия.Номенклатура;
Движение.Партия = ВыборкаПартия.Партия;
Движение.Количество = Списать;
Движение.Стоимость = Списать / ВыборкаПартия.КоличествоОстаток * ВыборкаПартия.СтоимостьОстаток;
ОсталосьСписать = ОсталосьСписать - Списать;
КонецЦикла;
КонецЦикла;
Движения.СтоимостьТоваров.Записывать = Истина;
//- Блокировка Создаем движения в регистре партий
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
Метод = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Дата).Метод;
Если ЗначениеЗаполнено(Метод) Тогда
Если Метод = Перечисления.УчетнаяПолитика.ЛИФО Тогда
Порядок = " Убыв";
Иначе
Порядок = "";
КонецЕсли;
Иначе
Сообщить("Заполните метод списания!");
Отказ = Истина;
Возврат;
КонецЕсли;
// регистр ОстаткиНоменклатуры Расход
Движения.ОстаткиНоменклатуры.Записывать = Истина;
// регистр Себестоимость Расход
Движения.Себестоимость.Записывать = Истина;
// регистр бухгалтерии
//Движения.РегистрБухгалтерии.Записывать = Истина;
Блокировка = Новый БлокировкаДанных;
ЭлБлокировки = Блокировка.Добавить("РегистрНакопления.Себестоимость");
ЭлБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки.УстановитьЗначение("Склад", Склад);
Блокировка.Заблокировать();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ПОМЕСТИТЬ ТчДок
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
| И РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга = ЛОЖЬ
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТчДок.Склад,
| ТчДок.Номенклатура КАК Номенклатура,
| СебестоимостьОстатки.Партия,
| ТчДок.Количество КАК КолДок,
| ЕСТЬNULL(СебестоимостьОстатки.КолвоОстаток, 0) КАК КолОст,
| ЕСТЬNULL(СебестоимостьОстатки.СебестоимостьОстаток, 0) КАК СумОст,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КолСклад
|ИЗ
| ТчДок КАК ТчДок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &Момент,
| (Склад, Номенклатура) В
| (ВЫБРАТЬ
| ТчДок.Склад,
| ТчДок.Номенклатура
| ИЗ
| ТчДок КАК ТчДок)) КАК ОстаткиНоменклатурыОстатки
| ПО ТчДок.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
| И ТчДок.Склад = ОстаткиНоменклатурыОстатки.Склад
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Себестоимость.Остатки(
| &Момент,
| Номенклатура В
| (ВЫБРАТЬ
| ТчДок.Номенклатура
| ИЗ
| ТчДок КАК ТчДок)) КАК СебестоимостьОстатки
| ПО ТчДок.Номенклатура = СебестоимостьОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| СебестоимостьОстатки.Партия.МоментВремени" + Порядок + "
|ИТОГИ
| МАКСИМУМ(КолДок)
|ПО
| Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Момент", МоментВремени());
//Движения по регистрам накопления
Пакет = Запрос.ВыполнитьПакет();
Результат = Пакет[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Результат.Следующий() Цикл
Выборка = Результат.Выбрать();
Остаток = Результат.КолДок;
Пока Выборка.Следующий() И Остаток > 0 Цикл
Если Выборка.КолДок > Выборка.КолСклад Тогда
Сообщить("Товара не хывтает");
Отказ = Истина;
Возврат;
КонецЕсли;
//Остатки
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = мин(Выборка.КолОст,Остаток);
//Себестоимость
Движение = Движения.Себестоимость.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Партия = Выборка.Партия;
Движение.Колво = мин(Выборка.КолОст,Остаток);
Движение.Себестоимость = ?(Выборка.КолОст = 0,0, Движение.Колво * Выборка.СумОст / Выборка.КолОст);
Остаток = Остаток - Движение.Колво;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Новый Граница(МоментВремени())).МетодСписания;
Работает быстрее чем через запрос в 2 раза. но разница в 0.0015 секунды (0.0030 против 0.0015).1. В этой задаче обязателен запрос на выборку номенклатуры без услуг.интересно, зачем тогда про них в условии говорится ;)
Обращение через точку в цикле - ошибка!а если еще и понимать отличия объектной модели данных от табличной... ???
2. По совету коллег – не использовать метод "Сообщить("")"ох уж эти вредные советы :D
плохо работает в Web интерфейсе1с вообще плохо работает в веб-интерфейсе ;D
Производительность моего решения показала лучший результаттолько преподу этого не ляпни ???
Готов услышать критику и замечания.комментарии повторяешь по два раза, по два раза :-X
плохо работает в Web интерфейсе1с вообще плохо работает в веб-интерфейсе ;DПроизводительность моего решения показала лучший результаттолько преподу этого не ляпни ???
И, пока что, я уверен что мое решение получилось более эффективным.Поскольку сделано на основе моего решения, тоже прокомментирую. Увы, но новая методика в этой задаче получит -1 балл, почти наверняка. Уверенность нужна не в тех вопросах, по которым у экзаменаторов есть однозначное мнение (именно поэтому мне пришлось позже поменять своё отношение к этому пунктику).
И, пока что, я уверен что мое решение получилось более эффективным.Поскольку сделано на основе моего решения, тоже прокомментирую. Увы, но новая методика в этой задаче получит -1 балл, почти наверняка. Уверенность нужна не в тех вопросах, по которым у экзаменаторов есть однозначное мнение (именно поэтому мне пришлось позже поменять своё отношение к этому пунктику).
По поводу Сообщить, даже не знаю, откуда оно в моем решении ). Видимо решение было выложено в начале подготовлено. Да, крайне нежелательно его использовать. Именно под несоответствие веб-интерфейсу и будет подведено, и штрафные баллы конкретно указаны за это. Так что только СообщениеПользователю.
Поясните, пожалуйста, про -1 балл. За что?За "использование менее эффективной методики проведения документов".
Без ключа данных эти три строки абсолютно идентичны методу:Код: [Выделить]Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Мало товара " + Выборка.НаименованиеПолное + " на складе - "+ Склад +" нужно еще " + (-Выборка.КоличествоОстаток);
Сообщение.Сообщить();
Сообщить("Мало товара " + Выборка.НаименованиеПолное + " на складе - "+ Склад +" нужно еще " + (-Выборка.КоличествоОстаток));
, а по сему использовать этот объект для такого сообщения бессмысленно, не?
Процедура ОбработкаПроведения(Отказ, Режим)
// ...
// регистр ОстаткиНоменклатуры Расход
Движения.ОстаткиНоменклатуры.Записывать = Истина;
// регистр Себестоимость Расход
Движения.Себестоимость.Записывать = Истина;
// регистр бухгалтерии
//Движения.РегистрБухгалтерии.Записывать = Истина;
Блокировка = Новый БлокировкаДанных;
ЭлБлокировки = Блокировка.Добавить("РегистрНакопления.Себестоимость");
ЭлБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки.УстановитьЗначение("Склад", Склад);
Блокировка.Заблокировать();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ остатки";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Момент", МоментВремени());
//Движения по регистрам накопления
Пакет = Запрос.ВыполнитьПакет();
Почему нет Движения.ОстаткиНоменклатуры.Записать() перед блокировкой, ведь тогда на момент запроса в итогах мешаются старые движения документа?
Код Alex1248:Код: [Выделить]Процедура ОбработкаПроведения(Отказ, Режим)
Почему нет Движения.ОстаткиНоменклатуры.Записать() перед блокировкой, ведь тогда на момент запроса в итогах мешаются старые движения документа?
// ...
// регистр ОстаткиНоменклатуры Расход
Движения.ОстаткиНоменклатуры.Записывать = Истина;
// регистр Себестоимость Расход
Движения.Себестоимость.Записывать = Истина;
// регистр бухгалтерии
//Движения.РегистрБухгалтерии.Записывать = Истина;
Блокировка = Новый БлокировкаДанных;
ЭлБлокировки = Блокировка.Добавить("РегистрНакопления.Себестоимость");
ЭлБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки.УстановитьЗначение("Склад", Склад);
Блокировка.Заблокировать();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ остатки";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Момент", МоментВремени());
//Движения по регистрам накопления
Пакет = Запрос.ВыполнитьПакет();
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Метод = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Новый Граница(МоментВремени())).МетодСписания; // быстрее в 2 раза чем через запрос
Если ЗначениеЗаполнено(Метод) Тогда
Если Метод = Перечисления.МетодСписания.LIFO Тогда
Порядок = " Убыв";
Иначе
Порядок = "";
КонецЕсли;
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Заполните Учетную политику!";
Сообщение.Сообщить();
Отказ = Истина;
Возврат;
КонецЕсли;
//- Получить учетную политику
//+ Получаем номенклатуру без услуг Делаем движения по отаткам
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ
| РасходнаяНакладнаяТовар.Номенклатура,
| СУММА(РасходнаяНакладнаяТовар.Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяТовар.Сумма) КАК Сумма
|ПОМЕСТИТЬ ДокТЧ
|ИЗ
| Документ.РасходнаяНакладная.Товар КАК РасходнаяНакладнаяТовар
|ГДЕ
| РасходнаяНакладнаяТовар.Ссылка = &Ссылка
| И НЕ РасходнаяНакладнаяТовар.Номенклатура.Услуга
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяТовар.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| РасходнаяНакладнаяТовар.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДокТЧ.Номенклатура,
| ДокТЧ.Количество КАК Количество
|ИЗ
| ДокТЧ КАК ДокТЧ";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса1 = Запрос.ВыполнитьПакет();
СписатьОстатки = РезультатЗапроса1[1].Выбрать();
Движения.ОстаткиТоваров.Записывать = Истина;
Движения.ОстаткиТоваров.Очистить();
Пока СписатьОстатки.Следующий() Цикл
Движение = Движения.ОстаткиТоваров.ДобавитьРасход();
Движение.Период = Дата;
Движение.Склад = Склад;
Движение.Номенклатура = СписатьОстатки.Номенклатура;
Движение.Количество = СписатьОстатки.Количество;
КонецЦикла;
Движения.ОстаткиТоваров.БлокироватьДляИзменения = Истина;
Движения.Записать();
//- Получаем номенклатуру без услуг Делаем движения по отаткам
//+ Проверяем отриц остатки
Запрос.Текст = "ВЫБРАТЬ
| Остатки.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
| Остатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(
| &ТочкаИтогов,
| Номенклатура В
| (ВЫБРАТЬ
| ДокТЧ.Номенклатура
| ИЗ
| ДокТЧ КАК ДокТЧ)
| И Склад = &Склад) КАК Остатки
|ГДЕ
| Остатки.КоличествоОстаток < 0
|";
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("ТочкаИтогов", Новый Граница(МоментВремени(), ВидГраницы.Включая));
ПакетРезультатов = Запрос.ВыполнитьПакет();
РезультатЗапроса = ПакетРезультатов[0];
Если НЕ РезультатЗапроса.Пустой() Тогда
Отказ = Истина;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Мало товара " + Выборка.НаименованиеПолное + " на складе - "+ Склад +" нужно еще " + (-Выборка.КоличествоОстаток);
Сообщение.Сообщить();
КонецЦикла;
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
//- Проверяем отриц остатки
//+ Блокировка Создаем движения в регистре партий
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.СтоимостьТоваров");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = РезультатЗапроса1[1] ;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Основной");
ЭлБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
ЭлБлокировки.ИсточникДанных = РезультатЗапроса1[1];
ЭлБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");
Блокировка.Заблокировать();
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.СтоимостьТоваров.Очистить();
Движения.СтоимостьТоваров.БлокироватьДляИзменения = Истина;
движения.СтоимостьТоваров.Записать();
Движения.Основной.Очистить();
Движения.Основной.БлокироватьДляИзменения = Истина;
движения.Основной.Записать();
КонецЕсли;
Запрос.Текст = "ВЫБРАТЬ
| ДокТЧ.Номенклатура КАК Номенклатура,
| ДокТЧ.Количество КАК Количество,
| СтоимостьТоваров.Партия,
| СтоимостьТоваров.КоличествоОстаток,
| СтоимостьТоваров.СтоимостьОстаток
|ИЗ
| ДокТЧ КАК ДокТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьТоваров.Остатки(
| &Момент,
| Номенклатура В
| (ВЫБРАТЬ
| ДокТЧ.Номенклатура
| ИЗ
| ДокТЧ КАК ДокТЧ)) КАК СтоимостьТоваров
| ПО ДокТЧ.Номенклатура = СтоимостьТоваров.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| СтоимостьТоваров.Партия.МоментВремени " + Порядок +"
|ИТОГИ
| МИНИМУМ(Количество)
|ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДокТЧ.Номенклатура КАК Номенклатура,
| ДокТЧ.Количество КАК КолДок,
| ДокТЧ.Сумма КАК Сумма,
| РегистрБухгалтерииОстатки.КоличествоОстаток КАК КолОст,
| РегистрБухгалтерииОстатки.СуммаОстаток КАК СумОст,
| РегистрБухгалтерииОстатки.Субконто2 КАК Дата
|ИЗ
| ДокТЧ КАК ДокТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Основной.Остатки(
| &Момент,
| Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары),
| &ВидыСубконто,
| Субконто1 В
| (ВЫБРАТЬ
| ДокТЧ.Номенклатура
| ИЗ
| ДокТЧ КАК ДокТЧ)) КАК РегистрБухгалтерииОстатки
| ПО ДокТЧ.Номенклатура = РегистрБухгалтерииОстатки.Субконто1
|
|УПОРЯДОЧИТЬ ПО
| РегистрБухгалтерииОстатки.Субконто2
|ИТОГИ
| МАКСИМУМ(КолДок),
| МАКСИМУМ(Сумма),
| СУММА(КолОст)
|ПО
| Номенклатура";
ВидыСубконто = Новый Массив;
ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности);
Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
Запрос.УстановитьПараметр("Момент", МоментВремени());
Движения.СтоимостьТоваров.Очистить();
Движения.Основной.Очистить();
РезультатЗапроса = Запрос.ВыполнитьПакет();
ВыборкаТовар = РезультатЗапроса[0].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаТовар.Следующий() Цикл
ОсталосьСписать = ВыборкаТовар.Количество;
ВыборкаПартия = ВыборкаТовар.Выбрать();
Пока ВыборкаПартия.Следующий() И ОсталосьСписать <> 0 Цикл
Списать = МИН(ОсталосьСписать, ВыборкаПартия.КоличествоОстаток);
Движение = Движения.СтоимостьТоваров.ДобавитьРасход();
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаПартия.Номенклатура;
Движение.Партия = ВыборкаПартия.Партия;
Движение.Количество = Списать;
Движение.Стоимость = Списать / ВыборкаПартия.КоличествоОстаток * ВыборкаПартия.СтоимостьОстаток;
ОсталосьСписать = ОсталосьСписать - Списать;
КонецЦикла;
КонецЦикла;
Движения.СтоимостьТоваров.Записывать = Истина;
//- Блокировка Создаем движения в регистре партий
//+ Движения по регистру бухгалтерии
Результат = РезультатЗапроса[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Результат.Следующий() Цикл
Если Результат.КолДок > Результат.КолОст Тогда
Сообщить("Товара не хватает!");
Отказ = Истина;
Возврат;
КонецЕсли;
Выборка = Результат.Выбрать();
Остаток = Результат.КолДок;
Пока Выборка.Следующий() И Остаток > 0 Цикл
Движение = Движения.Основной.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
Движение.СубконтоКт.Номенклатура = Выборка.Номенклатура;
Движение.СубконтоКт.СрокГодности = Выборка.Дата;
Движение.КоличествоКТ = мин(Остаток,Выборка.КолОст);
Движение.Период = Дата;
Движение.Сумма = ?(Выборка.КолОст =0,0, Движение.КоличествоКТ * Выборка.СумОст / Выборка.КолОст);
Остаток = Остаток - Движение.КоличествоКТ;
КонецЦикла;
Движение = Движения.Основной.Добавить();
Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
Движение.Период = Дата;
Движение.Сумма = Результат.Сумма;
КонецЦикла;
Движения.Основной.Записывать = Истина;
//- Движения по регистру бухгалтерии
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
Метод = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Новый Граница(МоментВремени())).Метод;
Если ЗначениеЗаполнено(Метод) Тогда
Если Метод = Перечисления.УчетнаяПолитика.ЛИФО Тогда
Порядок = " Убыв";
Иначе
Порядок = "";
КонецЕсли;
Иначе
Сообщить("Заполните метод списания!");
Отказ = Истина;
Возврат;
КонецЕсли;
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Движения.Себестоимость.Записывать = Истина;
Движения.РегистрБухгалтерии.Записывать = Истина;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад КАК Склад,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ПОМЕСТИТЬ ТчДок
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
| И РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга = ЛОЖЬ
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
|
|ИНДЕКСИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТчДок.Номенклатура
|ИЗ
| ТчДок КАК ТчДок";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗап = Запрос.ВыполнитьПакет();
СписокНомБезУсл = РезультатЗап[1];
Блокировка = Новый БлокировкаДанных;
ЭлБлокировки = Блокировка.Добавить("РегистрНакопления.Себестоимость");
ЭлБлокировки.ИсточникДанных = СписокНомБезУсл;
ЭлБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлБлокировки.ИсточникДанных = СписокНомБезУсл;
ЭлБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлБлокировки.УстановитьЗначение("Склад", Склад);
ЭлБлокировки = Блокировка.Добавить("РегистрБухгалтерии.РегистрБухгалтерии");
ЭлБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
ЭлБлокировки.ИсточникДанных = СписокНомБезУсл;
ЭлБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");
Блокировка.Заблокировать();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.ОстаткиНоменклатуры.Очистить();
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ОстаткиНоменклатуры.Записать();
Движения.Себестоимость.Очистить();
Движения.Себестоимость.БлокироватьДляИзменения = Истина;
Движения.Себестоимость.Записать();
Движения.РегистрБухгалтерии.Очистить();
Движения.РегистрБухгалтерии.БлокироватьДляИзменения = Истина;
Движения.РегистрБухгалтерии.Записать();
КонецЕсли;
//Запрос = Новый Запрос;
//Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ
| ТчДок.Склад,
| ТчДок.Номенклатура КАК Номенклатура,
| СебестоимостьОстатки.Партия,
| ТчДок.Количество КАК КолДок,
| ЕСТЬNULL(СебестоимостьОстатки.КолвоОстаток, 0) КАК КолОст,
| ЕСТЬNULL(СебестоимостьОстатки.СебестоимостьОстаток, 0) КАК СумОст,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КолСклад
|ИЗ
| ТчДок КАК ТчДок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &Момент,
| (Склад, Номенклатура) В
| (ВЫБРАТЬ
| ТчДок.Склад,
| ТчДок.Номенклатура
| ИЗ
| ТчДок КАК ТчДок)) КАК ОстаткиНоменклатурыОстатки
| ПО ТчДок.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
| И ТчДок.Склад = ОстаткиНоменклатурыОстатки.Склад
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Себестоимость.Остатки(
| &Момент,
| Номенклатура В
| (ВЫБРАТЬ
| ТчДок.Номенклатура
| ИЗ
| ТчДок КАК ТчДок)) КАК СебестоимостьОстатки
| ПО ТчДок.Номенклатура = СебестоимостьОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| СебестоимостьОстатки.Партия.МоментВремени
|ИТОГИ
| МАКСИМУМ(КолДок)
|ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТчДок.Номенклатура КАК Номенклатура,
| ТчДок.Количество КАК КолДок,
| ТчДок.Сумма КАК Сумма,
| РегистрБухгалтерииОстатки.КолвоОстаток КАК КолОст,
| РегистрБухгалтерииОстатки.СуммаОстаток КАК СумОст,
| РегистрБухгалтерииОстатки.Субконто2 КАК Дата
|ИЗ
| ТчДок КАК ТчДок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.РегистрБухгалтерии.Остатки(
| &Момент,
| Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары),
| &ВидыСубконто,
| Субконто1 В
| (ВЫБРАТЬ
| ТчДок.Номенклатура
| ИЗ
| ТчДок КАК ТчДок)) КАК РегистрБухгалтерииОстатки
| ПО ТчДок.Номенклатура = РегистрБухгалтерииОстатки.Субконто1
|
|УПОРЯДОЧИТЬ ПО
| РегистрБухгалтерииОстатки.Субконто2
|ИТОГИ
| МАКСИМУМ(КолДок),
| МАКСИМУМ(Сумма),
| СУММА(КолОст)
|ПО
| Номенклатура";
ВидыСубконто = Новый Массив;
ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Дата);
Запрос.УстановитьПараметр("Момент", МоментВремени());
Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
//Движения по регистрам накопления
Пакет = Запрос.ВыполнитьПакет();
Результат = Пакет[0].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Результат.Следующий() Цикл
Выборка = Результат.Выбрать();
Остаток = Результат.КолДок;
Пока Выборка.Следующий() И Остаток > 0 Цикл
Если Выборка.КолДок > Выборка.КолСклад Тогда
Сообщить("Товара не хывтает");
Отказ = Истина;
Возврат;
КонецЕсли;
//Остатки
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = мин(Выборка.КолОст,Остаток);
//Себестоимость
Движение = Движения.Себестоимость.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Партия = Выборка.Партия;
Движение.Колво = мин(Выборка.КолОст,Остаток);
Движение.Себестоимость = ?(Выборка.КолОст = 0,0, Движение.Колво * Выборка.СумОст / Выборка.КолОст);
Остаток = Остаток - Движение.Колво;
КонецЦикла;
КонецЦикла;
//Движения по регистру бухгалтерии
Результат = Пакет[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Результат.Следующий() Цикл
Если Результат.КолДок > Результат.КолОст Тогда
Сообщить("Товара не хватает!");
Отказ = Истина;
Возврат;
КонецЕсли;
Выборка = Результат.Выбрать();
Остаток = Результат.КолДок;
Пока Выборка.Следующий() И Остаток > 0 Цикл
Движение = Движения.РегистрБухгалтерии.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
Движение.СубконтоКт.Номенклатура = Выборка.Номенклатура;
Движение.СубконтоКт.Дата = Выборка.Дата;
Движение.КолвоКт = мин(Остаток,Выборка.КолОст);
Движение.Период = Дата;
Движение.Сумма = ?(Выборка.КолОст =0,0, Движение.КолвоКт * Выборка.СумОст / Выборка.КолОст);
Остаток = Остаток - Движение.КолвоКт;
КонецЦикла;
Движение = Движения.РегистрБухгалтерии.Добавить();
Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
Движение.Период = Дата;
Движение.Сумма = Результат.Сумма;
КонецЦикла;
КонецПроцедуры
моё решение
Буду рад критике
:D
Все, на этом я собираюсь остановиться.Рано. Рекомендую вам пока отложить этот билет и разобрать остальные 5.
Все, на этом я собираюсь остановиться.Рано. Рекомендую вам пока отложить этот билет и разобрать остальные 5.
Хорошие программисты пишут код, понятный людям. (с) С.Макконнелл «Совершенный код»
5?Мне казалось сдающим из регионов нужно готовиться только к первым 6 билетам.
Интересно с чего бы это вдруг? :)5?Мне казалось сдающим из регионов нужно готовиться только к первым 6 билетам.
Интересно с чего бы это вдруг? :)
моё решение
Буду рад критике
:D
1. Учет остатков ведется в разрезе складов, себестоимость не учитывает склады.
Т.е. При списании со склада ты можешь списать товар с 1 склада а себестоимость может быть списан "как-бы" с другого склада (т.е. товар с такой себестоимостью пришедший на другой склад).
2. Списываться товар должен со склада в шапке, никаких отборов по складу в запросе - нет.
3. Решение на 1 регистре – как по мне - ошибка. Потом этот регистр обзаведется кучей записей и проверять наличие остатков он будет довольно долго. Да и чем больше измерений, тем регистр медленнее.
4. "Избыточная" (как по мне) блокировка записей регистров. Номенклатуру - услуги блокировать в регистре ни к чему. (Хотя. мне кажется это я уже излишне заморачиваюсь)
моё решение
Буду рад критике
:D
1. Учет остатков ведется в разрезе складов, себестоимость не учитывает склады.
Т.е. При списании со склада ты можешь списать товар с 1 склада а себестоимость может быть списан "как-бы" с другого склада (т.е. товар с такой себестоимостью пришедший на другой склад).
2. Списываться товар должен со склада в шапке, никаких отборов по складу в запросе - нет.
3. Решение на 1 регистре – как по мне - ошибка. Потом этот регистр обзаведется кучей записей и проверять наличие остатков он будет довольно долго. Да и чем больше измерений, тем регистр медленнее.
4. "Избыточная" (как по мне) блокировка записей регистров. Номенклатуру - услуги блокировать в регистре ни к чему. (Хотя. мне кажется это я уже излишне заморачиваюсь)
У вас точно МОЙ дтшник?
По-внимательней, пожалуйста:
1. Себестоимость списывается в разрезе партий. Из условия задания: "Списание себестоимости товаров должно быть организовано по партиям, в зависимости от метода списания (FIFO или LIFO), принятого в учетной политике" - склады при расчете себестоимости не нужны.
2. Есть в параметрах виртуальной таблицы после даты в строке 83 модуля объекта документа "Расходная накладная". Применен новый метод контроля остатков, сначала списываем, а затем проверяем отрицательные остатки, при списывании указывается склад из шапки документа. Всё вроде верно.
3. Два регистра: ОстаткиНоменклатуры и Партии.
4. Тут, да, можно было результат запроса выгрузить и по нему блокировку делать.
Вы только оперативный учет смотрели?
Да... действительно не ваше решение смотрел ;D ;D ;D
1. Небольшое замечание: " Запрос.УстановитьПараметр("ВидТовар", Перечисления.ВидыНоменклатуры.Товар);"
Лучше установить такой параметр сразу в условии "РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Вид = Значение( Перечисления.ВидыНоменклатуры.Товар)
2. В бух учете при списании делаются проводки и по Услугам ;)
3. Блокировки на регистрах накопления - автоматические
4. Документ Операция не должен иметь возмоность проведения. Почему - хз))
По остальным вопросам не компетентен, но как начну заниматься расчетными если найду чего - напишу)
Однако, хотел бы сделать акцент на следующем моменте (если я все правильно понимаю):
В новом методе, не блокируются записи в регистре Бухгалтерии и в Регистре с себестоимостью пока не пройдет проверка на остатки. А, между прочим, проверка на остатки занимает ~15% Времени проведения документа.
Т.е. Мало того что метод работает на 10-20% быстрее так еще на дополнительные 15% уменьшается время блокировки 2-х ключевых регистров системы.
Добрый день! Подскажите, пожалуйста, в задаче по БУ нужен признак учета субконто "Суммовой потому, что "себестоимость определяется как средняя по товару по всем срокам годности"? Если бы и в разрезе сроков годности было бы, то не нужен был бы?
Обновленное моё решение.
Сразу отмечу что в расчетах нужно было использовать два плана видов расчета ОсновныеНачисления (оклад) и ДополнительныеНачисления (премия), а у меня в одном ОсновныеНначисления. (поленился) :(
Буду рад критике.
:)
Обновленное моё решение.Обновил, исправил.
Сразу отмечу что в расчетах нужно было использовать два плана видов расчета ОсновныеНачисления (оклад) и ДополнительныеНачисления (премия), а у меня в одном ОсновныеНначисления. (поленился) :(
Буду рад критике.
:)
Посмотрел одним глазом))
Вам надо читать вот этот файл
http://1c.ru/rus/partners/training/files/ATT83PL.rtf
Ну и исправлять у себя после прочтения.
В опер задаче блокировки не правильно.
Метод проведения не правильно. Надо один регистр новым методом проводить, другой старым.
Нельзя на экзамена два типа расходных документа делать, надо и опер и бух в одном.
В СПР у вас настройки тоже не совсем верны.
У оклада нет базы, а вы поставили зависит по периоду действия.
Предполагаю, это далеко не сдал.
В плюс, регистр бух вроде настроен правильно.
Вроде всё учёл. :)
Здравствуйте. Хотела спросить, а нужно ли решать проблему копеек при записи в РБ?Да, конечно, нужно.
Что, если в РС СведенияОСотрудниках нет записей на 01.месяц.Проверять. И если по какому-то из сотрудников информации нет, отказывать в проведении документа.
Что, если в РС СведенияОСотрудниках нет записей на 01.месяц.Проверять. И если по какому-то из сотрудников информации нет, отказывать в проведении документа.
Формально начало месяца не обязательно первое число месяца.А какие еще варианты?
Правильно понимаю, что наличие на первое число в РС СведенияОСотрудниках обязательно?Сделайте обязательным.
Моё обновленное решение.
Моё обновленное решение.
Посмотрел, сам прорешиваю пока только ОУ и расчеты, по ним есть вопросы:
ОУ:
1. Отчет ОсткаткиТоваров у Вас неправильный. Надо: тип отчета - список, РасположениеПолейГруппировок - Отдельно и только в итогах, РасположениеОбщихИтоговПоВертикали/горизонтале - нет.
Расчеты:
1. В регистре ГрафикиРаботы ресурс значение число (5,2), я считаю должно быть (1,0).
2. Совместительства нет, в отчете подразделений нет. Зачем в регистре расчета реквизит подразделение?
3. Вложенные запросы - это плохо, лучше все делать виртуальными таблицами в пакете.
4. Измерения регистров по которым будут соединения таблиц надо интексировать.
5. Почему нет реквизита Оклад в регистре основных начислений? Он не используется для отчета, но все равно все параметры по которым был расчет конкретного документа должны быть где-то в базе - или в документе или в регистре.
Где то встречал что к этому билету есть изменение в СПР. Необходимо предусмотреть возможность ввода новых видов расчет в режиме предприятия с сохранением возможности их расчета по реализованным алгоритмам. Кто нибудь может встречал реализацию этой задачи хотя бы примерно?
В план видов расчета добавляете реквизит к примеру "МетодРасчета" - это перечисление, добавляете туда значения вроде "ПроцентОтПремии" или "БазаОтОклада", вообщем те алгоритмы которые вы реализовали в СПР. И дальше в обработке проведения документа "Начисление зп" и в модуле где идет собственно расчет, отталкиваетесь от значения этого реквизита. Неплохо бы еще добавить туда реквизит порядок, чтобы расчет начислений не сбился (сначала оклад, а потом премия с базой от него).
Только это условие по моему попадается в 4 билете.
ВЫБРАТЬ
ВТ_СписокНоменклатуры.Номенклатура КАК Номенклатура,
ВТ_СписокНоменклатуры.Количество КАК Количество,
ВТ_СписокНоменклатуры.Склад КАК Склад,
ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоСклад,
СебестоимостьНоменклатурыОстатки.Партия,
ЕСТЬNULL(СебестоимостьНоменклатурыОстатки.КоличествоОстаток, 0) КАК СебестоимостьКоличество,
ЕСТЬNULL(СебестоимостьНоменклатурыОстатки.СуммаОстаток, 0) КАК СебестоимостьСумма
ИЗ
ВТ_СписокНоменклатуры КАК ВТ_СписокНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
&МоментВремени,
(Склад, Номенклатура) В
(ВЫБРАТЬ
ВТ_СписокНоменклатуры.Склад,
ВТ_СписокНоменклатуры.Номенклатура
ИЗ
ВТ_СписокНоменклатуры КАК ВТ_СписокНоменклатуры)) КАК ОстаткиНоменклатурыОстатки
ПО ВТ_СписокНоменклатуры.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
И ВТ_СписокНоменклатуры.Склад = ОстаткиНоменклатурыОстатки.Склад
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьНоменклатуры.Остатки(
&МоментВремени,
Номенклатура В
(ВЫБРАТЬ
ВТ_СписокНоменклатуры.Номенклатура
ИЗ
ВТ_СписокНоменклатуры КАК ВТ_СписокНоменклатуры)) КАК СебестоимостьНоменклатурыОстатки
ПО ВТ_СписокНоменклатуры.Номенклатура = СебестоимостьНоменклатурыОстатки.Номенклатура
УПОРЯДОЧИТЬ ПО
СебестоимостьНоменклатурыОстатки.Партия.МоментВремени УБЫВ
ИТОГИ
МАКСИМУМ(Количество),
МАКСИМУМ(Склад),
МАКСИМУМ(КоличествоСклад)
ПО
Номенклатура
Подскажите, пожалуйста, так можно использовать функцию МАКСИМУМ(Склад)? (Задача ОУ):
Подскажите, пожалуйста, так можно использовать функцию МАКСИМУМ(Склад)? (Задача ОУ):
а для чего склад в итогах нужен?
если сначала нужно списать по складу указанному в строке документа (и если не хватает по остальным складам), тогда сделай еще поле ПОРЯДОК где проверив равенство склада на склад из строки документа установишь его 0 а остальное 1, затем сортируй по этому полю.
Пока ВыборкаНоменклатура.Следующий() Цикл
НадоСписать = ВыборкаНоменклатура.КоличествоДок;
Нехватка = Выборка.КоличествоДок - Выборка.КоличествоСклад;
Если Нехватка > 0 Тогда
Сообщить("На складе "+Склад+" не хватает товара "+Выборка.Номенклатура+" в количестве "+Нехватка);
Отказ = Истина;
Возврат;
КонецЕсли;
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаНоменклатура.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = НадоСписать;
Выборка = ВыборкаНоменклатура.Выбрать();
Пока Выборка.Следующий() И НадоСписать > 0 Цикл
Списываем = Мин(НадоСписать, Выборка.СебестоимостьКоличество);
Движение = Движения.СебестоимостьНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Партия = Выборка.Партия;
Движение.Количество = Списываем;
Движение.Сумма = ?(Списываем = Выборка.СебестоимостьКоличество, Выборка.СебестоимостьСумма, Списываем*Выборка.СебестоимостьСумма/Выборка.СебестоимостьКоличество);
НадоСписать = НадоСписать - Списываем;
КонецЦикла;
КонецЦикла;
Сделал вот так:Код: [Выделить]Пока ВыборкаНоменклатура.Следующий() Цикл
НадоСписать = ВыборкаНоменклатура.КоличествоДок;
Нехватка = Выборка.КоличествоДок - Выборка.КоличествоСклад;
Если Нехватка > 0 Тогда
Сообщить("На складе "+Склад+" не хватает товара "+Выборка.Номенклатура+" в количестве "+Нехватка);
Отказ = Истина;
Возврат;
КонецЕсли;
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаНоменклатура.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = НадоСписать;
Выборка = ВыборкаНоменклатура.Выбрать();
Пока Выборка.Следующий() И НадоСписать > 0 Цикл
Списываем = Мин(НадоСписать, Выборка.СебестоимостьКоличество);
Движение = Движения.СебестоимостьНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Партия = Выборка.Партия;
Движение.Количество = Списываем;
Движение.Сумма = ?(Списываем = Выборка.СебестоимостьКоличество, Выборка.СебестоимостьСумма, Списываем*Выборка.СебестоимостьСумма/Выборка.СебестоимостьКоличество);
НадоСписать = НадоСписать - Списываем;
КонецЦикла;
КонецЦикла;
Не правильно в текст сообщения заталкивать ссылку, каждый раз подзапрос к базе идет ради представления. В запросе вытащи ПРЕДСТАВЛЕНИЕ(Номенклатура) и перед циклом представление(Склад).Спасибо, учту.
Почему по регистру "ОстаткиНоменклатуры" не применил новую методику? Думаю можно это сделать.Не совсем понял преимущества нового метода. Только то что не надо делать явную блокировку по регистру "ОстаткиНоменклатуры"?
Не совсем понял преимущества нового метода. Только то что не надо делать явную блокировку по регистру "ОстаткиНоменклатуры"?По быстродействию как раз таки лучше получается по новой методике. По РН "СебестоимостьНоменклатуры" делать блокировку после списания остатков и только в случае отсутствия отрицательных остатков.
По регистру "СебестоимостьНоменклатуры" все равно надо делать блокировку. Плюс еще запросов к базе вместо одного будет три.
Может я и не прав, по быстродействию не проверял.
Разве снижают оценку если использовал старую методику? Везде по разному говорят.
Не совсем понял преимущества нового метода. Только то что не надо делать явную блокировку по регистру "ОстаткиНоменклатуры"?По быстродействию как раз таки лучше получается по новой методике. По РН "СебестоимостьНоменклатуры" делать блокировку после списания остатков и только в случае отсутствия отрицательных остатков.
По регистру "СебестоимостьНоменклатуры" все равно надо делать блокировку. Плюс еще запросов к базе вместо одного будет три.
Может я и не прав, по быстродействию не проверял.
Разве снижают оценку если использовал старую методику? Везде по разному говорят.
Если не применил новую методику где можно и нужно снимут балл, в требованиях это есть: "Использование менее эффективной методики проведения документов 1,0".
Не совсем понял преимущества нового метода. Только то что не надо делать явную блокировку по регистру "ОстаткиНоменклатуры"?По быстродействию как раз таки лучше получается по новой методике. По РН "СебестоимостьНоменклатуры" делать блокировку после списания остатков и только в случае отсутствия отрицательных остатков.
По регистру "СебестоимостьНоменклатуры" все равно надо делать блокировку. Плюс еще запросов к базе вместо одного будет три.
Может я и не прав, по быстродействию не проверял.
Разве снижают оценку если использовал старую методику? Везде по разному говорят.
Если не применил новую методику где можно и нужно снимут балл, в требованиях это есть: "Использование менее эффективной методики проведения документов 1,0".
а разве не нужно ставить блокировку перед тем, как будем получать остатки? Ведь во время получения остатков кто то может провести приход, либо расход и уже остатки совсем другие будут
Движения.ТоварыНаСкладах.БлокироватьДляИзменения = Истина; // НАБОР БУДЕТ ЗАБЛОКИРОВАН СРАЗУ ПОСЛЕ ЗАПИСИ
Движения.ТоварыНаСкладах.Записать();
Есть еще один вопрос: если я в оу делал списание по новой методике, то обязательно ли потом проверять остатки в регистре бухгалтерии? Ведь по идее остатки в регистре бухгалтерии должны совпадать с остатками в регистре накопленияНе должны совпадать.
Смотрю еще решения и ни у кого нет проверки на остатки в регистре бухгалтерии в документе операция, а в билете написано "При проведении документа анализируется наличие этого товара в организации. Если товара не достаточно документ не проводится." (предпоследний абзац перед примером отчета)Уже не помню, где об этом говорится (в актуальных билетах нет, возможно, в тексте самих экз билетов всё же есть), но ответственность за корректность проводок в "Операции", в т.ч. и за остатки, несет юзер.
а где в условии сказано про доп реквизиты? Почему нельзя сделать без данных реквизитов? Можно ведь сразу по всем регистрам провести и всё, просто вроде как в условии об этом ничего, я стараюсь все по минимуму делать, только то, что есть в условии, что бы успеть сделатьЕсть еще один вопрос: если я в оу делал списание по новой методике, то обязательно ли потом проверять остатки в регистре бухгалтерии? Ведь по идее остатки в регистре бухгалтерии должны совпадать с остатками в регистре накопленияНе должны совпадать.
В ПН и РН используются 2 дополнительных реквизита ОУ и БУ типа булево, и документ проводится по ОУ и БУ только если соотв реквизит равен ИСТИНА, в этом же случае делается проверка остатков в соотв регистрах.
а где в условии сказано про доп реквизиты? Почему нельзя сделать без данных реквизитов?Я написал, как делается обычно. Данный способ снимает все проблемы. Именно так рекомендуют и без лишних вопросов принимают экзаменаторы.
Можно ведь сразу по всем регистрам провести и всё, просто вроде как в условии об этом ничего, я стараюсь все по минимуму делать, только то, что есть в условии, что бы успеть сделатьВ большинстве билетов сложно совместить ОУ и БУ. А добавить 2 рекв, и в коде строки Если ОУ Тогда и Если БУ Тогда - делов на полминуты.
В большинстве билетов сложно совместить ОУ и БУ. А добавить 2 рекв, и в коде строки Если ОУ Тогда и Если БУ Тогда - делов на полминуты.Добрый день! Скажите, а где можно почитать, что экзаменаторы положительно относятся к данным реквизитам? Это было бы хорошим вариантом, но не могу найти однозначного ответа
Мой ответ и есть однозначный. :DЦитироватьВ большинстве билетов сложно совместить ОУ и БУ. А добавить 2 рекв, и в коде строки Если ОУ Тогда и Если БУ Тогда - делов на полминуты.Добрый день! Скажите, а где можно почитать, что экзаменаторы положительно относятся к данным реквизитам? Это было бы хорошим вариантом, но не могу найти однозначного ответа
Спасибо! По поводу документа операция: Т.е. проверять на наличие остатков регистр бухгалтерии не нужно?а где в условии сказано про доп реквизиты? Почему нельзя сделать без данных реквизитов?Я написал, как делается обычно. Данный способ снимает все проблемы. Именно так рекомендуют и без лишних вопросов принимают экзаменаторы.
А вы можете делать, как угодно. Но для других вариантов тут будет сложнее получить ответ на ваши вопросы.
Добрый день, Владислав!Спасибо! Этот вопрос больше всего интересовал, просто в условии написано, что проверять остатки, в случае нехватки не проводить документ (предпоследний абзац перед примером отчета)
Никаких проверок в документе "Операция" делать не нужно.
За проводки в этом документе несет ответственность тот, кто делает этот
документ. В том смысл, чтобы можно было ввести любые проводки.
И в типовых конфигурациях точно также - никаких проверок.
Мое решение, все задачи. Покритикуйте пожалуйста.Ну самое первое что могу сказать, это в Приходной накладной Обработка проведения. Там в цикле проверку на ВидыНоменклатуры делать нельзя, нужно сначала запросом из документа получить номенклатуру определенного вида который тебе нужен, затем уже выборкой бежишь по результату запроса.
Спасибо, исправлю. Честно говоря думал что это не принципиально :)
Хм....а смысл в приходной смотреть вид номенклатуры, ведь сказано что "Помимо продажи товара, могут оказываться дополнительные услуги, например, по доставке. " тобиш в расходной :o
г) неправильный порядок операндов при расчете себестоимости ОУПочему не правильный? Какой должен быть?
е) не устанавливаешь ключ данных сообщению (не привязывается к объекту)Это обязательно? За это снижают баллы?
Привет всем! Почему во всех решениях В ПР за план берут часы??? Хотя явно сказано:Делайте правильно. Кажется, отличие будет только в заполнении графика, на код это никак не влияет?
Дневная ставка рассчитывается как начальное значение оклада, деленное на количество рабочих дней в том же периоде. Нигде не сказано про количество рабочих часов.
Если считать только по пятидневке, то разницы никакой не будет. Но в условии также говориться: "Все сотрудники работают по пятидневному графику работы, однако в решении необходимо предусмотреть возможность работы по нескольким различным графикам."Привет всем! Почему во всех решениях В ПР за план берут часы??? Хотя явно сказано:Делайте правильно. Кажется, отличие будет только в заполнении графика, на код это никак не влияет?
Дневная ставка рассчитывается как начальное значение оклада, деленное на количество рабочих дней в том же периоде. Нигде не сказано про количество рабочих часов.
Хм. Что значит "если считать только по пятидневке"? Ваш код при другом графике даст неверный результат?Если считать только по пятидневке, то разницы никакой не будет. Но в условии также говориться: "Все сотрудники работают по пятидневному графику работы, однако в решении необходимо предусмотреть возможность работы по нескольким различным графикам."Привет всем! Почему во всех решениях В ПР за план берут часы??? Хотя явно сказано:Делайте правильно. Кажется, отличие будет только в заполнении графика, на код это никак не влияет?
Дневная ставка рассчитывается как начальное значение оклада, деленное на количество рабочих дней в том же периоде. Нигде не сказано про количество рабочих часов.
Добрый вечер, джентльмены.Пардон, это задача 1.1, не знаю к какому билету относится.
Посмотрите, пожалуйста мое решение 1 билета по оперативному учету.
Всем добрый вечер. Подскажите пожалуйста зачем нужен Признак учета субконто -Суммовой.?Он нужен в том случае, когда хотя бы на одном из субконто его надо отключить (т.е. чтобы не вести суммовой учет в определенных разрезах).
Всем добрый вечер. Подскажите пожалуйста зачем нужен Признак учета субконто -Суммовой.?Он нужен в том случае, когда хотя бы на одном из субконто его надо отключить (т.е. чтобы не вести суммовой учет в определенных разрезах).
Ребзя, проверьте пжл задачу по СПР. Только начинаю въезжать, всё ли правильно сделал?
Ребзя, проверьте пжл задачу по СПР. Только начинаю въезжать, всё ли правильно сделал?
Не то, чтобы проверила... Сама готовлюсь к экзамену, сверяю свои решения с другими. Мне кажется неправильным, что у Вас стаж хранится в виде статичного реквизита. Явно ведь храниться должна дата приема на работу, а уж от неё должен определяться стаж, и конечно же, отдельно для каждой строки начисления.
Процент премии зависит от стажа работы сотрудника на данном предприятии. Шкала значений процента премии вводится пользователем в режиме 1С:Предприятия. При решении задачи необходимо учитывать, что на момент начала ведения учета в информационной базе у сотрудника уже может быть стаж отличный от нуля.Я упростил задачу. - 0.5-3.0 балла на усмотрение преподавателя. Я гавно.
Ребзя, проверьте пжл задачу по СПР. Только начинаю въезжать, всё ли правильно сделал?
Не то, чтобы проверила... Сама готовлюсь к экзамену, сверяю свои решения с другими. Мне кажется неправильным, что у Вас стаж хранится в виде статичного реквизита. Явно ведь храниться должна дата приема на работу, а уж от неё должен определяться стаж, и конечно же, отдельно для каждой строки начисления.
Да, вы правы. В задаче указано:ЦитироватьПроцент премии зависит от стажа работы сотрудника на данном предприятии. Шкала значений процента премии вводится пользователем в режиме 1С:Предприятия. При решении задачи необходимо учитывать, что на момент начала ведения учета в информационной базе у сотрудника уже может быть стаж отличный от нуля.Я упростил задачу. - 0.5-3.0 балла на усмотрение преподавателя. Я гавно.
Товарищи, по какой причине, в данном билете, из 5 скачанных решений пользователей по ОУ используются 2 регистра накопления? В одном склад, в другом партия? Это вроде как избыточность? ведь те же самые данные для данного условия задачи можно получить используя один регистр с измерениями: номенклатура,склад,партия. Ресурсы- Количество, сумма.Ответ на ваш вопрос в этой фразе
Для расчета себестоимости при списании товара необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел.
Коллеги, приветствуюЗадача по ОУ же 1.7 из сборника? Они же пишут
Прошу оценить решение билета № 1.
Жду конструктивной критики.
ОУ: В приходную накладную в обработке проведения использовал не конструктор, а запросом получал ТЧ документа без услуг с группировками. Это важно, т.к оприходование услуг возможно, но в таком случае регистр не будет закрываться в 0.
Запись по новой методике
Задача по ОУ же 1.7 из сборника?Если хотите только сдать экз, забейте на сборник. :)
Всем привет!
Прошу оценить моё решение,буду рад всем комментариям и замечаниям.
Спасибо.
Всем привет!
Прошу оценить моё решение,буду рад всем комментариям и замечаниям.
Спасибо.
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &ВидыСубконто,
| Субконто1 В
| (ВЫБРАТЬ
| ТЧ.Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК УправленческийОстатки
| ПО ТЧ.Номенклатура = УправленческийОстатки.Субконто1
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &ВидыСубконто,
| Субконто1 В
| (ВЫБРАТЬ
| ТЧ.Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК УправленческийОстатки1
| ПО ТЧ.Номенклатура = УправленческийОстатки1.Субконто1
В вашем запросе два одинаковых РегистрБухгалтерии.Управленческий с одинаковыми параметрами виртуальной таблицы. Зачем? Если можно обойтись одним РегистрБухгалтерии.Управленческий - ведь получается Вы две абсолютно одинаковые таблицы соединяете или я ошибаюсь?
Там по-другому никак не вытащить сумму с выключенными суммовыми итогами по субконто "срок годности".Думаю, для вас не было бы лишним посмотреть этот момент в чужих решениях. :)
Там по-другому никак не вытащить сумму с выключенными суммовыми итогами по субконто "срок годности".Думаю, для вас не было бы лишним посмотреть этот момент в чужих решениях. :)
....Там по-другому никак не вытащить сумму с выключенными суммовыми итогами по субконто "срок годности"....
Попробуйте следующим образом:
|ВЫБРАТЬ
| ТЧ.Номенклатура КАК Номенклатура,
| ТЧ.НоменклатураПредставление КАК НоменклатураПредставление,
| ТЧ.Количество КАК Количество,
| ЕСТЬNULL(УправленческийОстатки.Субконто2, ДАТАВРЕМЯ(1, 1, 1)) КАК СрокГодности,
| ЕСТЬNULL(УправленческийОстатки1.СуммаОстаток, 0) КАК СуммаОстаток,
| УправленческийОстатки.КоличествоОстаток
|ИЗ
| ТЧ КАК ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &ВидыСубконто1,
| Субконто1 В
| (ВЫБРАТЬ
| ТЧ.Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК УправленческийОстатки
| ПО ТЧ.Номенклатура = УправленческийОстатки.Субконто1
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &ВидыСубконто2,
| Субконто1 В
| (ВЫБРАТЬ
| ТЧ.Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК УправленческийОстатки1
| ПО ТЧ.Номенклатура = УправленческийОстатки1.Субконто1
ГДЕ
&ВидыСубконто1 - это массив из 2-ух элементов субконто номенклатура и срок годности
&ВидыСубконто2 - это массив из 1-го элемента субконто номенклатура
В этом запросе кстати убирается строка с нулевым количеством - которую потом в некоторых решениях убирают в цикле через условие типа
Если Выборка.КоличествоОстаток = 0 Тогда
Продолжить;
КонецЕсли
Писал я что принципе можно одним запросом, но почитал вчера по признак субконто, признак учета субконто и
и понял что одним левым соединением может и решить но правильнее 2-умя по рег. бух. Очень хорошо (но для меня еще мало) об этом написано в Профессиональная разработка в системе 1с ч1 стр 641 - 643, ну и тут http://forum.chistov.pro/index.php?topic=2670.msg41984;topicseen#msg41984
Других вариантов решений к сожалению не видел) Если не сложно,напишите другой.Посмотрите моё решение. Как образец не рассматривать. :)
... времени угробил неприлично много...Совсем не обязательно с первых попыток делать быстро. Гораздо важнее - правильно и с пониманием, скорость придет.
Сегодня добил первый билет, времени угробил неприлично много... а он ведь простой). Если кто осилит посмотреть и раскритиковать, буду очень рад.Думал полностью билет - а там у вас только Периодические расчеты
Здравствуйте друзья. Решил разобраться и в старой и новой методике. Сделал 2 варианта ОУ 1 билета.ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
Просьба посмотреть и прокомментить.
:-[ :-[ :-[ Вот же незадача, я свое решение профуфукал...и найти не могу.
Думал полностью билет - а там у вас только Периодические расчеты
Здравствуйте друзья. Решил разобраться и в старой и новой методике. Сделал 2 варианта ОУ 1 билета.ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
Просьба посмотреть и прокомментить.
может ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
просто чаще используется ЛЕВОЕ СОЕДИНЕНИЕ, да и вроде проверил также выдает результат
Добрый день, Andrig!Здравствуй freemaestro!
Смотрел твоё решение по новой методике.
1. Как верно заметил dendzu, соединение в запросе должно быть ЛЕВОЕ, а не ВНУТРЕННЕЕ.
2. // А. БЛОКИРОВКА Загрузка таблицы значений в набор записей
Движения.ОстаткиНоменклатуры.Загрузить(РезультатЗапроса.Выгрузить());
В правилах приема экзамена есть такой пункт: выгрузка результата запроса в таблицу значений без необходимости.
Если уверены - делайте так. Но будьте готовы доказать на экзамене, что это действительно необходимо.
3. Далее, перед запросом по регистру Себестоимость не делается блокировка по нему - вот это уже серьезная
ошибка. Регистр надо блокировать с помощью объекта БлокировкаДанных.
4. В цикле по списанию партий есть код:
Если выборкаПартии = 0 Тогда
Продолжить;
КонецЕсли;
выборкаПартии - это объект типа ВыборкаИзРезультатаЗапроса, он нулю не может быть равен никогда.
5. Движение.Сумма = Движение.Количество * выборкаПартии.СуммаОстаток/выборкаПартии.КоличествоОстаток;
перед делением надо анализировать выборкаПартии.КоличествоОстаток на ноль.
6. В списание партий неплохо бы добавить код что-то типа:
Если Списать = ВыборкаДетальныеЗаписи.КоличествоОстаток Тогда
Сумма = ВыборкаДетальныеЗаписи.СуммаОстаток
Иначе
Сумма = Списать * ВыборкаДетальныеЗаписи.СуммаОстаток / ВыборкаДетальныеЗаписи.КоличествоОстаток;
КонецЕсли;
Смысл такой - чтобы не "зависали" копейки сумм на остатках, надо всю сумму досписывать, если мы видим,
что всё количество списывается в ноль.
Ну вот как-то так.
... Зависит от экзаменатора. Доказывать что-то профессору – самоубийство.На сколько я помню, на экзамене нет задач, в которых есть необходимость использовать выгрузку.
Я действовал по методике Евгения Гилева.
По моему мнению. Выгружается временная таблица...
остальное в порядке?... Зависит от экзаменатора. Доказывать что-то профессору – самоубийство.На сколько я помню, на экзамене нет задач, в которых есть необходимость использовать выгрузку.
Я действовал по методике Евгения Гилева.
По моему мнению. Выгружается временная таблица...
И ни в коем случае не ссылайтесь на Гилева, это точно не будет плюсом к вашему решению.
А доказывать надо, но только тогда, когда точно знаешь, что прав ("профессора" иногда так шутят - говорят, что есть ошибка там, где на самом деле ее нет - проверяют понимание).
3.Не согласен по ошибке.
РН «себестоимость» «работает» после РН «Остатки номенклатуры». Блокировка первого не позволяет делать записи во второй, только после записи движений в первый.
Здравствуй,freemaestro!
3.Не согласен по ошибке.
РН «себестоимость» «работает» после РН «Остатки номенклатуры». Блокировка первого не позволяет делать записи во второй, только после записи движений в первый.
Доброго дня, andrig!
Поясни, пожалуйста, что ты имел в виду.
Вообще говоря, "новая методика" работает так: мы пишем в регистр остатков с "БлокироватьДляИзмененения" - и регистр блокируется. А далее, мы делаем запрос к регистру себестоимости - но предварительно надо его заблокировать с помощью объекта БлокировкаДанных.
Вот статья Павла Чистова на сайте Инфостарт:
http://expert.chistov.pro/public/195591/
Доброго времени суток, andrig !
Про "БлокироватьДляИзмененения" - точнее было бы сказать - для нас важно, что никто параллельно с нами читать данные из регистра по тем товарам, движения по которым были сформированы, не сможет. Это из статьи Павла Чистова, ссылку на которую я тебе дал. Но, блокировка всё-таки устанавливается - открываем синтакс-помощник:
"Устанавливает режим, при котором в процессе записи набора будет установлена управляемая блокировка для всех комбинаций измерений в соответствии с записями набора записей. Имеет смысл использовать, если проверка итогов регистра выполняется после записи и заблокировать нужно именно те комбинации, по которым записываются записи. В этом случае можно не использовать объект БлокировкаДанных.
".
Хотел поблагодарит тебя за ссылку.
Для меня информация оказалась новой и полезной.
Но моё мнение - на экзамене так делать не стоит, т.к. не факт, что проверяющий ожидает увидеть и услышать такое объяснение. Ещё посмотри комментарии к этой статье. Обрати внимание на комментарий mrvaldem и ответ Гилева на этот комментарий.
mrvaldem:
"Добрый день. В примечании Вы говорите о том, что не требуется накладывать блокировку на РН «Себестоимость», т.к. блокировки для РН «Свободные остатки» достаточно. Но это если допустить, что в системе все документы двигают эти оба регистра одновременно. Но это врядли. Поэтому, наверное, блочить «Свободные остатки и если проверка на отрицательность прошла, то блочить «Себестоимость» и проводить. Источник: ©Курсы-по-1С.рф"
Евгений Гилев (Мастер-тренер):
"Добрый день! Разумеется, могут быть случаи, когда нужно будет накладывать блокировки на регистр «Себестоимость товаров». Но, например, в типовой УТ 11 блокировка на этот регистр не накладывается. Почему? Разработчики облегчили себе жизнь — работу с себестоимостью они вынести за рамки проведения документов, в регламентные операции закрытия месяца." Источник: ©Курсы-по-1С.рф
И по проблеме копеек такая же песня - может, и не надо ставить отдельное условие при списании количества в ноль, но люди пишут - преподаватели придираются к этому. В комментариях к этой же статье посмотри.
Так что используй всё это так, как посчитаешь нужным, удачи на экзамене.
Движения.ОстаткиНоменклатуры.Записывать = Истина;Зачем это делать? Движения и так пустые при оперативном проведении. Белоусов в курсе говорит, что это делать не надо.
Движения.ОстаткиНоменклатуры.Очистить();
Движения.СебестоимостьНоменклатуры.Записывать = Истина;
Движения.СебестоимостьНоменклатуры.Очистить();
Движения.СебестоимостьНоменклатуры.Записать();
В РН.СебестоимостьНоменклатуры измерение Партия обязательная к заполнению. Следовательно не будет у вас случая когда Партия Null. Следовательно проверять не надо на Null.
| ЕСТЬNULL(СебестоимостьНоменклатурыОстатки.Партия, ЗНАЧЕНИЕ(Документ.ПриходнаяНакладная.ПустаяСсылка)) КАК Партия,
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Движения.ОстаткиНоменклатуры.Очистить();
Зачем это делать? Движения и так пустые при оперативном проведении. Белоусов в курсе говорит, что это делать не надо.
Я вообще оперативное проведение отключаю в документах.
В правилах приема экзамена сказано:
"Если при проведении документа используются каким-то образом данные,
считываемые из регистров, обязательно требуется предусмотреть получение
таких данных на момент проведения документа" - минус 1 балл на экзамене.
Почитай здесь же на форуме это обсуждают.
Но это - на свой страх и риск, лично я буду так делать.
Почему Движения.Записать() а не Движения.СебестоимостьНоменклатуры.Записать(),
так как могут возникнуть взаимоблокировки см
http://курсы-по-1с.рф/articles/2017-02-13-realtimeposting-and-datalock/
Я готовлюсь по курсу Дмитрия Гончарова.
Он говорит о том, что при Движения.Записать()
соблюдается гарантированная системная последовательность записи движений,
что минимизирует шанс появления блокировок.
| ЕСТЬNULL(СебестоимостьНоменклатурыОстатки.Партия, ЗНАЧЕНИЕ(Документ.ПриходнаяНакладная.ПустаяСсылка)) КАК Партия,
В РН.СебестоимостьНоменклатуры измерение Партия обязательная к заполнению.
Следовательно не будет у вас случая когда Партия Null. Следовательно проверять не надо на Null.
Партия может и не может быть пустым - это как ты регистр накопления настроил.
Есть такое правило при приеме экзамена:
"Отсутствие проверки на NULL" - минус 1 балл на экзамене.
А так как здесь левое соединение, то NULL может быть,
хотя бы теоретически.
Поэтому проверка далеко не лишняя.
Доброго времени суток, vaasec!
....
Andrig, а ты бух. учет делать будешь?Хочу добить сначала ОУ.
Можно тоже обсудить.
Посмотрите пожалуйста мое решение ОУ+БУ. Не знаю, может с БУ я перемудрила...
а при чем тут серии если задача про сроки годности или это они и есть?
просто я назвал справочник просто "Сроки годности", а "Серии" немножко другое и сбивает с толку.Кто на что гаразд)
Посмотрите пожалуйста мое решение ОУ+БУ. Не знаю, может с БУ я перемудрила...
У вас в плане счетов есть признак учета субконто "Количественный", и субконто "Серия" отмечено галочкой количественный, это почему вы так сделали? Думаю в этой задаче нужно добавить признак учета количественный для счета товары, и признак учета субконто Суммовой.
ЦитироватьУ вас в плане счетов есть признак учета субконто "Количественный", и субконто "Серия" отмечено галочкой количественный, это почему вы так сделали? Думаю в этой задаче нужно добавить признак учета количественный для счета товары, и признак учета субконто Суммовой.
Да, это как один из вариантов. Просто я потом остатки читаю не из остатков, а из оборотов. Не очень хороший вариант, уже выложила другой выше) Спасибо большое!
Цитата: olchik от Сегодня в 10:11:24 am
Цитировать
У вас в плане счетов есть признак учета субконто "Количественный", и субконто "Серия" отмечено галочкой количественный, это почему вы так сделали? Думаю в этой задаче нужно добавить признак учета количественный для счета товары, и признак учета субконто Суммовой.
Да, это как один из вариантов. Просто я потом остатки читаю не из остатков, а из оборотов. Не очень хороший вариант, уже выложила другой выше) Спасибо большое!
ввел свои данные в бухгалтерскую задачу, там копейка застряла на счете Товары.
* 1Cv8.dt (208.92 КБ - загружено 0 раз.)
* копейка потерялася.jpg (123.29 КБ, 1136x561 - просмотрено 2 раз.)
ЦитироватьЦитата: olchik от Сегодня в 10:11:24 am
Цитировать
У вас в плане счетов есть признак учета субконто "Количественный", и субконто "Серия" отмечено галочкой количественный, это почему вы так сделали? Думаю в этой задаче нужно добавить признак учета количественный для счета товары, и признак учета субконто Суммовой.
Да, это как один из вариантов. Просто я потом остатки читаю не из остатков, а из оборотов. Не очень хороший вариант, уже выложила другой выше) Спасибо большое!
ввел свои данные в бухгалтерскую задачу, там копейка застряла на счете Товары.
* 1Cv8.dt (208.92 КБ - загружено 0 раз.)
* копейка потерялася.jpg (123.29 КБ, 1136x561 - просмотрено 2 раз.)
Это в новом решении или в старом? То есть у того, которого есть признак учета Субконто Суммовой или где нет?
в новом и от плана счетов не зависит, проблема в этом местеЕсть предложение решения проблемы копеек?
СуммаСебастоимость = ВыборкаСерия.СуммаОстаток * КолСписать / ВыборкаСерия.КоличествоОстаток;
Цитироватьв новом и от плана счетов не зависит, проблема в этом местеЕсть предложение решения проблемы копеек?
СуммаСебастоимость = ВыборкаСерия.СуммаОстаток * КолСписать / ВыборкаСерия.КоличествоОстаток;
Цитировать
в новом и от плана счетов не зависит, проблема в этом месте
СуммаСебастоимость = ВыборкаСерия.СуммаОстаток * КолСписать / ВыборкаСерия.КоличествоОстаток;
Есть предложение решения проблемы копеек?
ЦитироватьЦитировать
в новом и от плана счетов не зависит, проблема в этом месте
СуммаСебастоимость = ВыборкаСерия.СуммаОстаток * КолСписать / ВыборкаСерия.КоличествоОстаток;
Есть предложение решения проблемы копеек?
Да, согласна. Только здесь не по партии (серии,сроку годности), а в целом по номенклатуре.
То есть как то так
КолСписать = МИН(НеобходиомСписать,ВыборкаСерия.КоличествоОстатокПоСерии);
Если КолСписать = ВыборкаНоменклатура.КоличествоОстаток Тогда
СуммаСебастоимость = ВыборкаНоменклатура.СуммаОстаток;
Иначе
СуммаСебастоимость = ВыборкаСерия.СуммаОстаток * КолСписать / ВыборкаСерия.КоличествоОстаток;
КонецЕсли;
проблема осталасьМожет тогда обратно выгрузку с примером скинете, с копейками )
Цитироватьпроблема осталасьМожет тогда обратно выгрузку с примером скинете, с копейками )
Все правильно, проверка тоже правильна: Если КолСписать = КоличествоОстаток, то просто списываем СуммаОстаток, только это выражение:
СуммаСебестоимость = Окр(КолСписать / ВыборкаСерия.КоличествоОстаток * ВыборкаСерия.СуммаОстаток, 2);
лучше писать так:
СуммаСебестоимость = КолСписать * ВыборкаСерия.СуммаОстаток / ВыборкаСерия.КоличествоОстаток;
То есть из-за особенностей компьютерного округления сначала умножаем, потом делим. Округлять не обязательно, разрядность поля само позаботится об округлении. :)
Можете решить проблему копеек в прикрепленном примере в бухгалтерской задачи? там данные забиты. У меня не получилось.
сумма падает на Субконто1 Номенклатура, а Количество на субконто2 "Серию".
сумма падает на Субконто1 Номенклатура, а Количество на субконто2 "Серию".
Что то даже представить такое не могу, сделайте сриншоты, может понятнее будет.
Прикрепил
Тут много кто пишет о проблеме копеек. Можно поподробнее?Я тоже никак не могла смоделировать. Посмотрите выгрузки баз и какой там пример приведен.
Пример:
Йогурт 20.03.17 - 10 шт цена 500,13
Йогурт 25.03.17 - 10 шт цена 700
СрокГодности 20.03.17
продаем 9 шт - по 50,01 = 450,12
остаток 1 шт - по 50,01
продаем еще 5 шт.
смотрим что у нас есть остаток ранней партии в размере 1шт, соответственно списываем остаточную себестоимость, т.е. 50,01(т.е. все что есть)
а так же списываем 4шт по 70 = 280
Вопрос: откуда проблемы с копейками?
Цитироватьпроблема осталасьМожет тогда обратно выгрузку с примером скинете, с копейками )
Тут много кто пишет о проблеме копеек. Можно поподробнее?Проблема с копейками возникает, т.к. суммовой учет ведется в разрезе всей номенклатуры, соответственно в регистре не хранятся данные о себестоимости конкретной партии. И соответственно мы не можем списать остаток по партии, т.к. нет данных для этого, а если списывать как (общая стоимость по номенклатуре)/(общее количество по нменклатуре)*(количествоСписания) то зависнут копейки из за округления. Соответственно нужно накапливать сколько осталось списать в отдельной переменной и списывать это, если партия последняя. Возможно я заблуждаюсь, но я решил эту проблему так. Пример можете посмотреть в выгрузке, прикрепленной к моему предыдущему сообщению
Пример:
Йогурт 20.03.17 - 10 шт цена 500,13
Йогурт 25.03.17 - 10 шт цена 700
СрокГодности 20.03.17
продаем 9 шт - по 50,01 = 450,12
остаток 1 шт - по 50,01
продаем еще 5 шт.
смотрим что у нас есть остаток ранней партии в размере 1шт, соответственно списываем остаточную себестоимость, т.е. 50,01(т.е. все что есть)
а так же списываем 4шт по 70 = 280
Вопрос: откуда проблемы с копейками?
Вопрос: откуда проблемы с копейками?Проблема если и есть, то не копеек, а неумения "готовить" списание. :)
Тут много кто пишет о проблеме копеек. Можно поподробнее?
Пример:
Йогурт 20.03.17 - 10 шт цена 500,13
Йогурт 25.03.17 - 10 шт цена 700
СрокГодности 20.03.17
продаем 9 шт - по 50,01 = 450,12
остаток 1 шт - по 50,01
продаем еще 5 шт.
смотрим что у нас есть остаток ранней партии в размере 1шт, соответственно списываем остаточную себестоимость, т.е. 50,01(т.е. все что есть)
а так же списываем 4шт по 70 = 280
Вопрос: откуда проблемы с копейками?
Всем доброго дня! У меня проблема с выполнением бух.задачи - когда провожу Приходную накладную с одним товаром в виртуальную таблицу "УправленческийОстатки" на счет "Товары" создается одна запись. Хотя в плане счетов сделал "Признак учета субконто" суммовой и назначил его на Субконто1 "Номенклатура". За образец брал решение SAE, у него делается две записи в виртуальную таблицу - сумма падает на Субконто1 Номенклатура, а Количество на субконто2 "Серию". Подскажите, что может быть не так в моем решении? На всякий случай прикреплю выгрузку свою.
Долго бился, но разобрался почему так получается!:)
В решении SAE Субконто2 - Срок годности имеет "примитивный тип" Дата. Я же использовал справочник "Серии".
На своей шкуре убедился, что записи с Субконто имеющие ссылочный тип в виртуальной таблице хранятся оптимальней. :)
Рано радовался :(
Сделал приход 1шт за 500р с одной серией, затем второй приход 1шт за 600р с другой. Продал 1шт одной расходной(списалось 550руб), затем еще раз продал 1шт другой(списалось еще 550руб). В результате в виртуальном регистре остатки следующая картина. Это же не правильно? Как считаете?
Рано радовался :(
Сделал приход 1шт за 500р с одной серией, затем второй приход 1шт за 600р с другой. Продал 1шт одной расходной(списалось 550руб), затем еще раз продал 1шт другой(списалось еще 550руб). В результате в виртуальном регистре остатки следующая картина. Это же не правильно? Как считаете?
Не знаю у меня все норм
И правда, у вас все норм показывает. Буду сравнивать настройки, искать различия.Каркасная все та же, просто так настроил.
А что за интересная каркасная конфигурация у вас? режим совместимости отключен, консоль запросов запускается. Это сейчас такая новая каркасная?
Но в каких случаях исполльовать признак учёта субконто? Я как-то упустил этот момент, а в решениях у SAE в билетах 1 и 5 используются ПУС (признаки учёта субконто). Никак не могу допетрить :(Как я понимаю, в первом билете ПУС используется чтобы сумма накапливалась в разрезе всей номенклатуры, чтобы рассчитывать потом себестоимость по ней. А по сроку годности она списываться не должна, иначе будут либо отрицательные остатки по сроку годности, либо не спишется себестоимость полностью. Поэтому у сукбонто нужно снять ПУС суммовой, в итоге по срокам годности система будет запоминать только количество.
Подскажите, пожалуйста, след.моменты:
При решении задач БУ у нас всегда есть один ресурс регистра бухгалтерии "Сумма", он является балансовым.
Больше балансовых ресурсов в РБ по условиям задач быть не должно.
Дальше, в условии может быть сказано, что ведётся учёт в валюте или количестве. Значит нам необходимо завести признак учёта "Суммовой" (или "Количественный" соответственно) и указать его в соответствующем ресурсе и на счетах в плане счетов. ОК, тоже понятно.
Но в каких случаях исполльовать признак учёта субконто? Я как-то упустил этот момент, а в решениях у SAE в билетах 1 и 5 используются ПУС (признаки учёта субконто). Никак не могу допетрить :(
В примере у SAE признак учёта субконто (ПУС) стоит для обязательного балансового ресурса "Сумма". Далее, этот ПУС указан для субконто "Номенклатура", а для "Срок годности" нет. Далее, при партионном списании используется 2 левых соединения к остаткам - первое для получения остатков и себестоимости по всей номенклатуре без срока годности, второе для получения остатков по номенклатуре в разрезе сроков годности.Подскажите, пожалуйста, след.моменты:
При решении задач БУ у нас всегда есть один ресурс регистра бухгалтерии "Сумма", он является балансовым.
Больше балансовых ресурсов в РБ по условиям задач быть не должно.
Дальше, в условии может быть сказано, что ведётся учёт в валюте или количестве. Значит нам необходимо завести признак учёта "Суммовой" (или "Количественный" соответственно) и указать его в соответствующем ресурсе и на счетах в плане счетов. ОК, тоже понятно.
Но в каких случаях исполльовать признак учёта субконто? Я как-то упустил этот момент, а в решениях у SAE в билетах 1 и 5 используются ПУС (признаки учёта субконто). Никак не могу допетрить :(
Доброго времени суток, CeHbKA !
Попробую объяснить про признаки учета и признаки учета субконто .
Ты верно заметил, что:
"При решении задач БУ у нас всегда есть один ресурс регистра бухгалтерии "Сумма", он является балансовым.
Больше балансовых ресурсов в РБ по условиям задач быть не должно."
С ресурсом "Сумма", я думаю, всё понятно - он должен быть всегда и должен быть балансовым.
Попробуй создать признак учета "Суммовой". Не признак учета субконто, а именно признак учета.
И попробуй не включить его по некоторым счетам. При попытке сделать проводку с таким счетом,
платформа будет ругаться, что сумма должна быть заполнена обязательно!
Оно и понятно - это балансовый ресурс.
Таким образом, признак учета "Суммовой" на экзамене исключается.
Может быть только признак учета субконто "Суммовой", если мы не хотим вести суммовой учет по какому-либо субконто.
В типовой "Бухгалтерии", кстати, тоже нет признака учета "Суммовой", есть признак учета субконто "Суммовой".
Если у кого есть мысли по этому поводу, буду рад услышать комментарии.
UPD2: твою ж мать, там даже специально чёрным по-белому написано:Добрый день! Подскажите, пожалуйста, в задаче по БУ нужен признак учета субконто "Суммовой потому, что "себестоимость определяется как средняя по товару по всем срокам годности"? Если бы и в разрезе сроков годности было бы, то не нужен был бы?
Да.
Надо "убить" остатки по сроку годности по сумме. Иначе в таблице остатков по одному СрокуГ будет +10 руб и по другому СрокуГ -10 руб. Не закроется в ноль.
Сумма для срока годности должна получаться расчетным образом как средняя цена по данному товару умноженная на количество с данным сроком. Средняя цена рассчитывается как общая сумма данного товара поделенная на общее количество данного товара
...проведение по остаткам по новой методике, по партиям - по старой.-1 балл. Использование неэффективной методики контроля остатков (вы используете новую, а надо старую).
Спасибо за ответ, но я тогда вообще ничего не понимаю... Прочитал всю тему раз 5, просмотрел все решения, вроде же в итоге сошлись на том варианте, как я написал. За основу брал, если не ошибаюсь, как раз Ваше решение с первых страниц темы....проведение по остаткам по новой методике, по партиям - по старой.-1 балл. Использование неэффективной методики контроля остатков (вы используете новую, а надо старую).
Дополнительные регистры и ресурсы в существующих регистрах ради новой методики на экз не приветствуются.
...проведение по остаткам по новой методике, по партиям - по старой.-1 балл. Использование неэффективной методики контроля остатков (вы используете новую, а надо старую).
Дополнительные регистры и ресурсы в существующих регистрах ради новой методики на экз не приветствуются.
При проведении документа «Расходная накладная» необходимо производить списание товара со склада. В том случае, когда товара не хватает, документ проводиться не должен.и
Для расчета себестоимости при списании товара необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел. Предположим, для метода списания FIFO первое поступление портсигара произошло на склад «Основной» документом «Приходная накладная №1», а потом на склад «Транзитный» документом «Приходная накладная №2». В этом случае при продаже товара со склада «Транзитный» в первую очередь должна быть списана себестоимость портсигара по документу «Приходная накладная №1», так как она пришла раньше
Хотел спросить у тебя - зачем выставлять свойство "БлокироватьДляИзменения"
в "Истина" для регистра "Партии" ?
Ты же его блокируешь через объект "БлокировкаДанных" ?
Я при подготовке делал неправильно - всё подгонял под новую методику - именно так, как сейчас делаете вы. На экз мне повезло - попалась одна из редких задач, в которых ничего рассчитывать не надо было, т.е. однозначно новая. Позже был целый ряд отзывов о замечаниях за использование новой методики там, где для проведения требуется сначала, например, получить себестоимость.Спасибо за ответ, но я тогда вообще ничего не понимаю... Прочитал всю тему раз 5, просмотрел все решения, вроде же в итоге сошлись на том варианте, как я написал. За основу брал, если не ошибаюсь, как раз Ваше решение с первых страниц темы....проведение по остаткам по новой методике, по партиям - по старой.-1 балл. Использование неэффективной методики контроля остатков (вы используете новую, а надо старую).
Дополнительные регистры и ресурсы в существующих регистрах ради новой методики на экз не приветствуются.
ППС. Еще более конкретный признак использования новой/старой методик в неоднозначных ситуациях. Как только у вас получается 2 методики - новую в топку. :Dспасибо за разъяснения
Доброго времени суток, Pumba!
посмотрел твоё решение - логика правильная,
2 регистра накопления, всё как положено,
сначала пишем, потом читаем, проверяем остатки,
если хватает - тогда уже списываем по партиям и т.д.
Хотел спросить у тебя - зачем выставлять свойство "БлокироватьДляИзменения"
в "Истина" для регистра "Партии" ?
Ты же его блокируешь через объект "БлокировкаДанных" ?
Вот фрагмент твоего кода:
Движения.ПартииНоменклатуры.Записывать = Истина;
///Записываем пустой набор, чтобы если документ оперативно перепроводится в остатки не попали его же движения
///Блокируем для чтения по тем измерениям, по которым были движения
Движения.ПартииНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ПартииНоменклатуры.Записать();
///Накладываем блокировку на чтение на регистр по номенклатуре из ТЧ
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ПартииНоменклатуры");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();
ППС. Еще более конкретный признак использования новой/старой методик в неоднозначных ситуациях. Как только у вас получается 2 методики - новую в топку. :DОгромное спасибо, вот этим и предыдущим сообщением вы внесли полную ясность!
насколько я понимаю, блокировать для изменения и последующая запись пустого набора блокируют по тем измерениям, которые были. А Блокировка данных блокирует по тем измерениям, по которым мы будем писать. Информацию взял отсюда http://expert.chistov.pro/public/195591/
Вот мой вариант ОУ + БУ.Вроде в оперативной части ошибка, но по txt не гадаю, выкладывай dt
Комменты?
Вот мой вариант ОУ + БУ.Вроде в оперативной части ошибка, но по txt не гадаю, выкладывай dt
Комменты?
Блокировать надо, потому что иначе после нашей записи пустого набора эту номенклатуру может списать другой документ. И если наше проведение не состоится и транзакция откатится, то возникнет ошибка - эта номенклатура будет списана двумя документами сразу.насколько я понимаю, блокировать для изменения и последующая запись пустого набора блокируют по тем измерениям, которые были. А Блокировка данных блокирует по тем измерениям, по которым мы будем писать. Информацию взял отсюда http://expert.chistov.pro/public/195591/
Pumba, я вот задумался над чем: надо ли блокировать по тем измерениям, которые были?
Если мы, к примеру, удалили из документа строку с какой-то номенклатурой и перепроводим документ,
то зачем нам блокировать записи в регистре по этой номенклатуре?
Ребята, кто что думает по этому вопросу ?
Блокировать надо, потому что иначе после нашей записи пустого набора эту номенклатуру может списать другой документ. И если наше проведение не состоится и транзакция откатится, то возникнет ошибка - эта номенклатура будет списана двумя документами сразу.насколько я понимаю, блокировать для изменения и последующая запись пустого набора блокируют по тем измерениям, которые были. А Блокировка данных блокирует по тем измерениям, по которым мы будем писать. Информацию взял отсюда http://expert.chistov.pro/public/195591/
Pumba, я вот задумался над чем: надо ли блокировать по тем измерениям, которые были?
Если мы, к примеру, удалили из документа строку с какой-то номенклатурой и перепроводим документ,
то зачем нам блокировать записи в регистре по этой номенклатуре?
Ребята, кто что думает по этому вопросу ?
Вот мой вариант ОУ + БУ.
Комменты?
Вот мой вариант ОУ + БУ.
Комменты?
В бухгалтерской задаче заполнил свои данные, посмотрите dt файл, там поступило товара на 20.00, а списалось 20.01 - одна копейка зависла, как так?
еще раз ОУ+БУ+ЧастичноСПР
Да можно, это как вариант решения, к тому же избавился от условия в цикле проверки что это услуга, а именно обращение через точку:еще раз ОУ+БУ+ЧастичноСПР
Зачем в модуле приходной запрос? можно же просто обойти строки табличной части?
еще раз ОУ+БУ+ЧастичноСПР
Зачем в модуле приходной запрос? можно же просто обойти строки табличной части?
еще раз ОУ+БУ+ЧастичноСПР
Зачем в модуле приходной запрос? можно же просто обойти строки табличной части?
Еще запросом можно сгруппировать строки, чтобы избавиться от дублей и в регистре было бы меньше записей.
А ещё можно просто ограничить выбор услуг через параметр выбора. Вообще говоря в приходной услуги не забиваются и не понятно нужно ли контролировать это в приходной, в расходной понятно что обязательно.еще раз ОУ+БУ+ЧастичноСПР
Зачем в модуле приходной запрос? можно же просто обойти строки табличной части?
Еще запросом можно сгруппировать строки, чтобы избавиться от дублей и в регистре было бы меньше записей.
В данном случае есть срок годности, поэтому группировка тут не особо поможет, а так, да, в том числе и для группировки.
А ещё можно просто ограничить выбор услуг через параметр выбора. Вообще говоря в приходной услуги не забиваются и не понятно нужно ли контролировать это в приходной, в расходной понятно что обязательно.еще раз ОУ+БУ+ЧастичноСПР
Зачем в модуле приходной запрос? можно же просто обойти строки табличной части?
Еще запросом можно сгруппировать строки, чтобы избавиться от дублей и в регистре было бы меньше записей.
В данном случае есть срок годности, поэтому группировка тут не особо поможет, а так, да, в том числе и для группировки.
1. БУ: Индексы таб.списокНоменклатуры
2. Расходная БУ: нет смысла группировать ТЧ, т.к. присутствует "Номер строки" и поэтому таблица не будет сгруппирована, лучше взять мин или макс значение, я так понимаю что это для указания строки, но и это не нужно, т.к. в задаче нет необходимости показывать позицию.
Я: Есть ли необходимость использования конструкции "СообщитьПользователю" для указания позиции ошибки?
Гончаров: Нет, если в задаче не указано обратное.
3. ОУ: В запросе не указан метод сортировки (не сработает стрзаменить)
4. ОУ: Не знаю, на сколько верно не использовать постпроверку по регистру "Себестоимость"
4. ОУ: Не знаю, на сколько верно не использовать постпроверку по регистру "Себестоимость"
/quote]
Перепутал, по регистру остатки
Метод списания себестоимости - так и должно быть: читаем, вычисляем среднюю, избавляемся от копеек пишем, установив блокировку перед этим. Списание остатков: пишем, с блокироватьдляизменения, потом проверяем не залезли ли в минус. Ну как-то такЭто Белоусов сказал?
Нет, это мое мнение. Этот момент я уточню у него.Метод списания себестоимости - так и должно быть: читаем, вычисляем среднюю, избавляемся от копеек пишем, установив блокировку перед этим. Списание остатков: пишем, с блокироватьдляизменения, потом проверяем не залезли ли в минус. Ну как-то такЭто Белоусов сказал?
Этот момент я уточню у него.Вы собираетесь на его курсы?
ДаЭтот момент я уточню у него.Вы собираетесь на его курсы?
Сорри, кажется я всех слегка обманываю по поводу методик проведения. Но это касается только задачи ОУ из 1 билета.Вот те раз, почему же в решении SAE он сделал т.к. вы до этого говорили?
Уже много забыл, и суть этой задачи подзабыл (сейчас перечитал).
Тут же 2-й регистр создается не ради новой методики, а из-за того, что себестоимость и количество учитываются в разных разрезах. Т.е. 2 регистра по-любому. И действительно похоже на новую методику контроля остатков, а уже затем - расчет себестоимости по 2-му регистру.
В тему. Вот что писали по поводу ответа Белоусова на тех же курсах на вопрос, имеющий отношение к данному: "БУ, ОУ: больная тема - количество регистров. Делайте сколько хотите, только вы должны обосновать почему у вас 2-3-4, а не один например. Плюсы, минусы: один хорошо, но есть ограничение по кол-ву измерений и индексированию. Два и больше плохо с точки зрения синхронизации, запись данных при проведении идет в несколько регистров и есть вероятность ошибиться в этом процессе. Грубо говоря, в один записали - в другой забыли, ну и прочее. Будьте готовы к вопросу: а можно обойтись одним регистром?.
Вот первоисточник (п. 6):
http://forum.chistov.pro/index.php?topic=2005.msg22307#msg22307
Но в данном случае одним регистром не обойтись, потому делаем новую (на том регистре себестоимость рассчитывать не надо).
Еще раз всем сорри за ввод в заблуждение. Думаю, что теперь у тех, кто читал внимательно, по вопросу методики списания вопросов не должно быть вообще.
Разве что xXeNoNx подкинет новую инфу по результатам посещения курсов. :)
Вот те раз, почему же в решении SAE он сделал т.к. вы до этого говорили?Думаю, тоже норм.
Т.е. там 2 регистра, один на количество, один на стоимость. Списание он делает по старой методике и в одном запросе считывает остатки по количеству и левым соединением стоимость подцепляет.
Всем доброго дня! У меня проблема с выполнением бух.задачи - когда провожу Приходную накладную с одним товаром в виртуальную таблицу "УправленческийОстатки" на счет "Товары" создается одна запись. Хотя в плане счетов сделал "Признак учета субконто" суммовой и назначил его на Субконто1 "Номенклатура". За образец брал решение SAE, у него делается две записи в виртуальную таблицу - сумма падает на Субконто1 Номенклатура, а Количество на субконто2 "Серию". Подскажите, что может быть не так в моем решении? На всякий случай прикреплю выгрузку свою.
Делаю дополнительное задание билета 1. Отображение результатов расчета в форме начисления зарплаты с целью редактирования. Сделал как здесь http://forum.chistov.pro/index.php?topic=3953.0. Но потом подумал иНе могу открыть Вашу выгрузку чтобы посмотреть) Поставьте режим совместимости 8.3.9немножкоупростил. Почему так делать не стоит?
8.3.9Посмотрел Ваше решение, вот что выявил: в условии сказано, что кнопка "Рассчитать"сделана с целью редактирования результатов расчета. У Вас же, при проведении документа, независимо от того что находится в документе, в регистр попадают результаты авторасчета. То есть если пользователя не устроил расчет зарплаты, он мог его откорректировать, а он этого не может сделать. Я думаю нужно сделать, чтобы при проведении записывались результаты из формы, а при нажатии "рассчитать" просто рассчитывались записи и не попадали в регистр (для этого и нужна транзакция).
8.3.9Посмотрел Ваше решение, вот что выявил: в условии сказано, что кнопка "Рассчитать"сделана с целью редактирования результатов расчета. У Вас же, при проведении документа, независимо от того что находится в документе, в регистр попадают результаты авторасчета. То есть если пользователя не устроил расчет зарплаты, он мог его откорректировать, а он этого не может сделать. Я думаю нужно сделать, чтобы при проведении записывались результаты из формы, а при нажатии "рассчитать" просто рассчитывались записи и не попадали в регистр (для этого и нужна транзакция).
Процедура Рассчитать() Экспорт
НачатьТранзакцию();
Движения.ОсновныеНачисления.Очистить();
Движения.ОсновныеНачисления.Записывать=Истина;
Движения.ДопНачисления.Очистить();
Движения.ДопНачисления.Записывать=Истина;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| НачислениеЗарплатыОсновныеНачисления.Сотрудник,
| НачислениеЗарплатыОсновныеНачисления.Подразделение,
| НачислениеЗарплатыОсновныеНачисления.ВидРасчета,
| НачислениеЗарплатыОсновныеНачисления.ДатаНачала КАК ПериодДействияНачало,
| КОНЕЦПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.ДатаОкончания, ДЕНЬ) КАК ПериодДействияКонец,
| НАЧАЛОПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.ДатаНачала, МЕСЯЦ) КАК НачалоРасчетногоПериода,
| НАЧАЛОПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.Ссылка.Дата, МЕСЯЦ) КАК ПериодРегистрации,
| НачислениеЗарплатыОсновныеНачисления.График
|ПОМЕСТИТЬ ТабЧастьОклад
|ИЗ
| Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
|ГДЕ
| НачислениеЗарплатыОсновныеНачисления.ВидРасчета = &ВидРасчетаОклад
| И НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТабЧастьОкладСМаксПериодомОклада.Сотрудник,
| ТабЧастьОкладСМаксПериодомОклада.Подразделение,
| ТабЧастьОкладСМаксПериодомОклада.ВидРасчета,
| ТабЧастьОкладСМаксПериодомОклада.ПериодДействияНачало,
| ТабЧастьОкладСМаксПериодомОклада.ПериодДействияКонец,
| ТабЧастьОкладСМаксПериодомОклада.ПериодРегистрации,
| ЕСТЬNULL(СведенияОСотрудниках.Оклад, 0) КАК Параметр,
| ТабЧастьОкладСМаксПериодомОклада.График
|ИЗ
| (ВЫБРАТЬ
| ТабЧастьОклад.Сотрудник КАК Сотрудник,
| ТабЧастьОклад.Подразделение КАК Подразделение,
| ТабЧастьОклад.ВидРасчета КАК ВидРасчета,
| ТабЧастьОклад.ПериодДействияНачало КАК ПериодДействияНачало,
| ТабЧастьОклад.ПериодДействияКонец КАК ПериодДействияКонец,
| ТабЧастьОклад.НачалоРасчетногоПериода КАК НачалоРасчетногоПериода,
| ТабЧастьОклад.ПериодРегистрации КАК ПериодРегистрации,
| МАКСИМУМ(СведенияОСотрудниках.Период) КАК МаксимальныйПериод,
| ТабЧастьОклад.График КАК График
| ИЗ
| ТабЧастьОклад КАК ТабЧастьОклад
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
| ПО ТабЧастьОклад.Сотрудник = СведенияОСотрудниках.Сотрудник
| И ТабЧастьОклад.Подразделение = СведенияОСотрудниках.Подразделение
| И ТабЧастьОклад.НачалоРасчетногоПериода >= СведенияОСотрудниках.Период
|
| СГРУППИРОВАТЬ ПО
| ТабЧастьОклад.Сотрудник,
| ТабЧастьОклад.Подразделение,
| ТабЧастьОклад.ПериодДействияКонец,
| ТабЧастьОклад.НачалоРасчетногоПериода,
| ТабЧастьОклад.ПериодРегистрации,
| ТабЧастьОклад.ПериодДействияНачало,
| ТабЧастьОклад.ВидРасчета,
| ТабЧастьОклад.График) КАК ТабЧастьОкладСМаксПериодомОклада
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
| ПО ТабЧастьОкладСМаксПериодомОклада.Сотрудник = СведенияОСотрудниках.Сотрудник
| И ТабЧастьОкладСМаксПериодомОклада.Подразделение = СведенияОСотрудниках.Подразделение
| И ТабЧастьОкладСМаксПериодомОклада.МаксимальныйПериод = СведенияОСотрудниках.Период
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТабЧастьПремияСРассчитаннымСтажом.Сотрудник,
| ТабЧастьПремияСРассчитаннымСтажом.Подразделение,
| ТабЧастьПремияСРассчитаннымСтажом.ВидРасчета,
| ТабЧастьПремияСРассчитаннымСтажом.ПериодРегистрации,
| ЕСТЬNULL(ПроцентыПремии.Процент, 0) КАК Параметр,
| ТабЧастьПремияСРассчитаннымСтажом.БазовыйПериодНачало КАК БазовыйПериодНачало,
| ТабЧастьПремияСРассчитаннымСтажом.БазовыйПериодКонец КАК БазовыйПериодКонец,
| ТабЧастьПремияСРассчитаннымСтажом.Стаж КАК Стаж
|ИЗ
| (ВЫБРАТЬ
| НачислениеЗарплатыДопНачисления.Сотрудник КАК Сотрудник,
| НачислениеЗарплатыДопНачисления.Подразделение КАК Подразделение,
| НачислениеЗарплатыДопНачисления.ВидРасчета КАК ВидРасчета,
| НАЧАЛОПЕРИОДА(НачислениеЗарплатыДопНачисления.МесяцНачисления, МЕСЯЦ) КАК БазовыйПериодНачало,
| КОНЕЦПЕРИОДА(НачислениеЗарплатыДопНачисления.МесяцНачисления, МЕСЯЦ) КАК БазовыйПериодКонец,
| РАЗНОСТЬДАТ(НачислениеЗарплатыДопНачисления.Сотрудник.ДатаПриема, &ПериодРегистрации, ГОД) + НачислениеЗарплатыДопНачисления.Сотрудник.НачальныйСтаж КАК Стаж,
| НАЧАЛОПЕРИОДА(НачислениеЗарплатыДопНачисления.Ссылка.Дата, МЕСЯЦ) КАК ПериодРегистрации
| ИЗ
| Документ.НачислениеЗарплаты.ДопНачисления КАК НачислениеЗарплатыДопНачисления
| ГДЕ
| НачислениеЗарплатыДопНачисления.Ссылка = &Ссылка
| И НачислениеЗарплатыДопНачисления.ВидРасчета = &ВидРасчетаПремия) КАК ТабЧастьПремияСРассчитаннымСтажом
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцентыПремии КАК ПроцентыПремии
| ПО ТабЧастьПремияСРассчитаннымСтажом.Стаж >= ПроцентыПремии.СтажОт
| И ТабЧастьПремияСРассчитаннымСтажом.Стаж < ПроцентыПремии.СтажДо";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ВидРасчетаОклад", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
Запрос.УстановитьПараметр("ВидРасчетаПремия", ПланыВидовРасчета.ДополнительныеНачисления.Премия);
Запрос.УстановитьПараметр("ПериодРегистрации", НачалоМесяца(Дата));
Результаты=Запрос.ВыполнитьПакет();
Выборка = Результаты [1].Выбрать();
Пока Выборка.Следующий() Цикл
Движение=Движения.ОсновныеНачисления.Добавить();
ЗаполнитьЗначенияСвойств(Движение, Выборка);
КонецЦикла;
Выборка=Результаты[2].Выбрать();
Пока Выборка.Следующий() Цикл
Движение=Движения.ДопНачисления.Добавить();
ЗаполнитьЗначенияСвойств(Движение, Выборка);
КонецЦикла;
Движения.Записать();
Расчет.РассчитатьНачисления(Ссылка, ОсновныеНачисления, ДопНачисления);
Движения.ОсновныеНачисления.Очистить();
Движения.ОсновныеНачисления.Записать();
Движения.ДопНачисления.Очистить();
Движения.ДопНачисления.Записать();
ЗафиксироватьТранзакцию();
КонецПроцедуры
Движения.ОсновныеНачисления.Очистить();
Движения.ОсновныеНачисления.Записать();
Движения.ДопНачисления.Очистить();
Движения.ДопНачисления.Записать();
А как у Вас обрабатывается вот этот момент: "В одном документе могут быть данные за разные расчетные периоды"?
все норм можно начисления за текущий, и за прошлый, и позапрошлый месяцы делатьСудя по сообщению от уже сдавшего ITshnik, то нужно в табличную часть Начисления добавить Реквизит "ПериодРегистрации".
Судя по сообщению от уже сдавшего ITshnik, то нужно в табличную часть Начисления добавить Реквизит "ПериодРегистрации".Так делать точно не "нужно". Но, поскольку экзаменаторы принимают, можно.
проверьте, пожалуйста, свою почтуСудя по сообщению от уже сдавшего ITshnik, то нужно в табличную часть Начисления добавить Реквизит "ПериодРегистрации".Так делать точно не "нужно". Но, поскольку экзаменаторы принимают, можно.
Ребят, ну что за проблема с этим "данные за разные расчетные периоды". Уже множество раз писалось об этом. Период регистрации - это период, в котором делаются начисления. Не нужно его выносить в ТЧ. В ТЧ у нас уже есть ДатаНачала и ДатаОкончания - это будет Период Действия - период, за который выполняются начисления и вот он-то и может быть разными месяцами. Т.е. начисляем в марте зарплату за январь и февраль, например. Период регистрации - март, период действия - январь, февраль. Все, что нужно в связи с этим условием - обработать получение оклада на начало расчетного периода, т.к. если могут быть разные расчетные периоды, срез последних (для РС Сведения о сотрудниках, где хранится оклад) не подойдет; а также для премии указаать месяц начисления в ТЧ - от него будем считать ПериодДействияНачало и ПериодДействияКонец.
Добрый день,Если делать правильно, копейки не останутся.
Решил ОУ и БУ по первому билету.
Возник один вопрос. При формировании движений по БУ при продаже товара с разными сроками годности в 0. Могут оставаться копейки из-за округления.
Если имеется ввиду блокирование записей регистра по данному регистратору, что бы кто-нить не списал, пока мы будем пытаться перепроводить документ
Движения.Себестоимость.Очистить(); - нет смысла, если есть Движения.Себестоимость.Записать();
нет смысла два раза устанавливать Движения.Себестоимость.Записывать = Истина; - т.к. Движения.Себестоимость.Записать() - не сбрасывает этот флаг.
.Очистить - лишнее, т.к. .Записать, записывает пустой набор записей...
Достаточно:
Движения.Себестоимость.БлокироватьДляИзменения = Истина; // Отключаем разделитель итогов, блокировка набора записи осуществится непосредственно в момент записи.
Движения.Себестоимость.Записать();
Движения.Себестоимость.Записывать = Истина;
Не всегда расположение измерений в регистре накопления будут: номенклатура, склад(в данном случае). Нужно в первую очередь смотреть соединения, потом отчеты, если есть отбор по измерению(в отчете), например, склад, то склад должен быть первым из измерений, с учетом того что по номенклатуре нет соединений.
"ВЫБРАТЬ
| ОстаткиНоменклатурыОстатки.Номенклатура.Представление КАК Номенклатура, // Необходимо помнить, что разыменовывание при обходе результата запроса делает еще запросы.
| -ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток // Инвертируем знак сугубо для отображения в сообщениях.
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| ВТ_Документ.Номенклатура
| ИЗ
| ВТ_Документ КАК ВТ_Документ)
| И Склад = &Склад) КАК ОстаткиНоменклатурыОстатки // Это эффективнее, чем (Номенклатура, Склад) В (..., ...), так как нет цикла в цикле на уровне СУБД.
|ГДЕ
| ОстаткиНоменклатурыОстатки.КоличествоОстаток < 0";
На экзамене упоминание обычных форм происходит в контексте тех обработок, которые включены в каркасную, не более. Т.е. знать как их подключить в УФ.
не ошибки, а инфа, которую недавно получил...
насчет расположения реквизитов, в данной задаче, не принципиально.
Отчеты: Есть предположение что шапка отчета должна соответствовать условию задачи
не ошибки, а инфа, которую недавно получил...
насчет расположения реквизитов, в данной задаче, не принципиально.
Отчеты: Есть предположение что шапка отчета должна соответствовать условию задачи
Возможно. Но, по результату первой попытки сдать экзамен понял, что времени на рюшечки и красоту на экзамене банально нет. Мне не хватило 5 часов, причем решение задач я знал. Оказалось, что "привычка" делать все на пустой базе, а не каркасной, очень даже влияет на скорость.
не ошибки, а инфа, которую недавно получил...
насчет расположения реквизитов, в данной задаче, не принципиально.
Отчеты: Есть предположение что шапка отчета должна соответствовать условию задачи
Возможно. Но, по результату первой попытки сдать экзамен понял, что времени на рюшечки и красоту на экзамене банально нет. Мне не хватило 5 часов, причем решение задач я знал. Оказалось, что "привычка" делать все на пустой базе, а не каркасной, очень даже влияет на скорость.
На пустой базе делать не рекомендуется, если попадешь к Белоусову, то может завернуть.., т.к. он говорит что это ошибка, хотя Гончаров сказал что не ошибка... Лучше уж на каркасной...
До сих пор не могу понять, надо ли автоматизировать в СПР подбор оклада и премии или нет. Чистов упорно продолжает утверждать, что оклад, например, не требуется автоматизировать и достаточно только создать регистр сведений. Сюда же попадает и премия из задачи этого билета. Никак не могу найти ответа, надо или не надо автоматизировать, так как это очень много лишнего времени съедает. В текущей .dt, что я выложил на проверку, оклад и премия автоматизированы, поэтому и трёхэтажные запросы, которые никак не проверяют знание механизма СПР... отсюда и сомнения в их необходимости. Есть ли у кого ответ на данный вопрос, подтвержденный экзаменами?
До сих пор не могу понять, надо ли автоматизировать в СПР подбор оклада и премии или нет.В СПР-1 сказано "Первоначальное значение оклада может изменяться не чаще, чем один раз в день, но берется на начало расчетного периода." Думаю, надо автоматизировать его получение - указания на то, что пользователь вводит и контролирует его ввод сам, нет, следовательно, разработчик должен обеспечить соблюдение данного условия.
Очень двояко. Много таких мест в задачах, что ставит в тупик, когда сдается дистанционно, т.к. не у кого спросить. Только надеяться, что описание "непонятки" в пояснительной записке прокатит, если на экзамене не успею реализовать получение оклада (премии).До сих пор не могу понять, надо ли автоматизировать в СПР подбор оклада и премии или нет.В СПР-1 сказано "Первоначальное значение оклада может изменяться не чаще, чем один раз в день, но берется на начало расчетного периода." Думаю, надо автоматизировать его получение - указания на то, что пользователь вводит и контролирует его ввод сам, нет, следовательно, разработчик должен обеспечить соблюдение данного условия.
Оклад, не зависит по базе ни от чего, в некоторых задачах он просто задается как константа, в некоторых хранится история, т.е. нужен регистр сведений с значениями окладов. Какая там автоматизация?Автоматизация определения данных на начало расчетного периода. Если не реализовать подбор оклада из регистра сведений, то могут зарубить (до -3 баллов) за упрощение задачи и апеллируй хоть до посинения >:(
Всем доброго времени суток!
Ребята, кто знает, что означает условие в СПР:
"Документ в расчетном периоде может быть один (сразу для всех видов расчета), а может быть несколько (по
одному для каждого отдельного вида расчета)." ?
Означает ровно то, что написано ни больше, ни меньше.
У вида расчета может быть приоритет, например: Оклад имеет более высокий приоритет расчета и должен быть рассчитан ранее больничного(в большинстве случаев), т.о. если указать в одном документе больничный и оклад, нужно сделать так, что бы сначала рассчитывался оклад, а потом больничный.
Означает ровно то, что написано ни больше, ни меньше.
У вида расчета может быть приоритет, например: Оклад имеет более высокий приоритет расчета и должен быть рассчитан ранее больничного(в большинстве случаев), т.о. если указать в одном документе больничный и оклад, нужно сделать так, что бы сначала рассчитывался оклад, а потом больничный.
Добрый день, xXeNoNx ! Спасибо за ответ!
Видимо, просто надо соблюдать порядок расчета (по приоритетам) - и не более того.
должен присутствовать документ "Операция", даже если про это явно не сказано в задании. Ну конкретно в этой задаче есть.)))Вроде бы, во всех есть.
выполняем билет по порядкуСоздаем у доков реквизиты ОУ и БУ типа булево, и проводим их только в том случае, если соответствующий реквизит имеет значение Истина. И не надо никаких заморочек с увязкой задач.
Создаем у доков реквизиты ОУ и БУ типа булево, и проводим их только в том случае, если соответствующий реквизит имеет значение Истина. И не надо никаких заморочек с увязкой задач.Не, как это сделать то понятно. Я просто просмотрел несколько решений людей и не увидел там такого. Причем проверки реализованы точно также как и у меня. Меня больше интересует вопрос, как надо правильно?
Выполнять поэтому можно в любом порядке.
Правильно - надо создавать реквизиты ОУ и БУ.Создаем у доков реквизиты ОУ и БУ типа булево, и проводим их только в том случае, если соответствующий реквизит имеет значение Истина. И не надо никаких заморочек с увязкой задач.Не, как это сделать то понятно. Я просто просмотрел несколько решений людей и не увидел там такого. Причем проверки реализованы точно также как и у меня. Меня больше интересует вопрос, как надо правильно?
Выполнять поэтому можно в любом порядке.
Т.к. в разрабатываемой вами конфигурации присутствие документа РучнаяОперация является обязательным,это накладывает неявное, но обязательное требование - во всех запросах и отчетах, которые вы делаете для решения задачи, накладывать максимальное количество уточняющих условий на счета. К примеру, если в условии вашей задачи упомянуто, что документ приходная делает проводку Дт Товары - Кт Поставщики, а расходная - Дт ПрибылиУбытки Кт Товары то анализируя потом для какой-либо цели (зависит от задачи) всю эту ситуацию, удобно использовать таблицу Обороты, задавая условие счета равное счету Товары,а на выходе дебетовый оборот будет со счетом Поставщики, а кредитовый - ПрибылиУбытки. Но в условии виртуальной таблицы обязательно нужно указать условие, приведенное ниже, и тогда РучнаяОперация, какая бы корреспонденция счетов там ни была введена, не сможет нарушить работу вашего запроса:И не совсем его понял. Может нужно исключать движения этого документа? Тогда зачем он нужен?!
| КорСчет В (Значение(ПланСчетов.Управленческий.Поставщики), Значение(ПланСчетов.Управленческий.ПрибылиУбытки))
Увидел на инфостарте это пояснениеМне кажется, там про запрос написано не совсем корректно. я для отчетов указывал конкретно СчетДт и СчетКт.ЦитироватьТ.к. в разрабатываемой вами конфигурации присутствие документа РучнаяОперация является обязательным,это накладывает неявное, но обязательное требование - во всех запросах и отчетах, которые вы делаете для решения задачи, накладывать максимальное количество уточняющих условий на счета. К примеру, если в условии вашей задачи упомянуто, что документ приходная делает проводку Дт Товары - Кт Поставщики, а расходная - Дт ПрибылиУбытки Кт Товары то анализируя потом для какой-либо цели (зависит от задачи) всю эту ситуацию, удобно использовать таблицу Обороты, задавая условие счета равное счету Товары,а на выходе дебетовый оборот будет со счетом Поставщики, а кредитовый - ПрибылиУбытки. Но в условии виртуальной таблицы обязательно нужно указать условие, приведенное ниже, и тогда РучнаяОперация, какая бы корреспонденция счетов там ни была введена, не сможет нарушить работу вашего запроса:И не совсем его понял. Может нужно исключать движения этого документа? Тогда зачем он нужен?!
| КорСчет В (Значение(ПланСчетов.Управленческий.Поставщики), Значение(ПланСчетов.Управленческий.ПрибылиУбытки))
Себестоимость определяется как средняя по товару поСледовательно при реализации 1 позиции на счете товары будет количество по сроку годности 10.01.2017 = 0, а сумма будет -10.
всем срокам годности. Т.е. например если 1 пачка йогурта со сроком годности 10.01.2017
поступила по цене 90 рублей и еще 1 пачка того же йогурта, но со сроком годности
30.01.2017 поступила по цене 110 рублей, то при списании себестоимость одной пачки
данного йогурта равна 100 рублей
Построенная в решении учетная схема принципиально не позволяет одновременно вывести в ноль все ресурсы регистра накапливающего информацию об остатках. Балл 0,5 - 3,0Следовательно - условие задачи не корректное?
Нашел еще одну проблему)))
Условие из задания по БУЦитироватьСебестоимость определяется как средняя по товару поСледовательно при реализации 1 позиции на счете товары будет количество по сроку годности 10.01.2017 = 0, а сумма будет -10.
всем срокам годности. Т.е. например если 1 пачка йогурта со сроком годности 10.01.2017
поступила по цене 90 рублей и еще 1 пачка того же йогурта, но со сроком годности
30.01.2017 поступила по цене 110 рублей, то при списании себестоимость одной пачки
данного йогурта равна 100 рублей
В списке ошибок гласится следующееЦитироватьПостроенная в решении учетная схема принципиально не позволяет одновременно вывести в ноль все ресурсы регистра накапливающего информацию об остатках. Балл 0,5 - 3,0Следовательно - условие задачи не корректное?
Условие задачи даже более чем корректное.Спасибо большое. Теперь понятно.
Проанализировав условие задачи, Ты для себя должен сделать вывод, что необходимо отключать суммовой учет для субконто "Срок годности". Заводишь признак учета субконто "Суммовой", связанный с ресурсом Сумма регистра бухгалтерии и отключаешь этот флажок для субконто "Срок годности".
Посмотрел решения по СПР и практически все вычисляют стаж как
РазностьДат(ДатаПриема, БазовыйПериодНачало, Год) + НачальныйСтаж КАК Трудовой стаж
Но ведь если сотрудник к примеру Начальный стаж = 0, Дата Приема 01.12.2016, а базовый период 01.01.2017 то считается стаж как 1 год.
Хотя по факту стаж 1 месяц, т.е. из регистра должно браться 5% премии. Кто нибудь может продемонстрировать другое решение вычисления ТрудовогоСтажа в запросе?
А то я нагородил запрос где ищу разницу в месяцах и если оно меньше 12 то ставлю стаж 0 через выбор когда.
...
...
ИначеЕсли ВидРасчета = ПланыВидовРасчета.ДополнительныеНачисления.Премия Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(БазаОсновныеНачисления.РезультатБаза, 0) КАК РезультатБаза,
| БазаОсновныеНачисления.НомерСтроки,
| ЕСТЬNULL(ШкалаСтажа.Процент, 0) КАК Процент,
| БазаОсновныеНачисления.Сотрудник.Стаж + РАЗНОСТЬДАТ(БазаОсновныеНачисления.Сотрудник.ДатаПриема, БазаОсновныеНачисления.ПериодРегистрации, ДЕНЬ) / 365 КАК Стаж
|ИЗ
| РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления(
| &Измер,
| &Измер,
| ,
| Регистратор = &Регистратор
| И ВидРасчета = &ВидРасчета) КАК БазаОсновныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШкалаСтажа КАК ШкалаСтажа
| ПО (БазаОсновныеНачисления.Сотрудник.Стаж + РАЗНОСТЬДАТ(БазаОсновныеНачисления.Сотрудник.ДатаПриема, БазаОсновныеНачисления.ПериодРегистрации, ДЕНЬ) / 365 >= ШкалаСтажа.СтажОт)
| И (ВЫБОР
| КОГДА ШкалаСтажа.СтажДо = 0
| ТОГДА ИСТИНА
| ИНАЧЕ БазаОсновныеНачисления.Сотрудник.Стаж + РАЗНОСТЬДАТ(БазаОсновныеНачисления.Сотрудник.ДатаПриема, БазаОсновныеНачисления.ПериодРегистрации, ДЕНЬ) / 365 < ШкалаСтажа.СтажДо
| КОНЕЦ)";
Измер = Новый Массив;
Измер.Добавить("Сотрудник");
Запрос.УстановитьПараметр("Измер", Измер);
Запрос.УстановитьПараметр("Регистратор", Регистратор);
Запрос.УстановитьПараметр("ВидРасчета", ВидРасчета);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Для Каждого Запись Из НаборЗаписей Цикл
Отбор = Новый Структура("НомерСтроки", Запись.НомерСтроки);
Выборка.Сбросить();
Если Выборка.НайтиСледующий(Отбор) Тогда
Запись.Результат = Выборка.РезультатБаза * Выборка.Процент / 100;
Запись.Стаж = Выборка.Стаж;
Запись.Процент = Выборка.Процент;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Поясните пожалуйста - в 4 разделе, где идет речь про бизнес-процессы. На карте маршрута словосочетание "Все кладовщики" отличается от "Любой бухгалтер"? Необходимо ли ставить какие то дополнительные галочки? Или для БП оба этих понятия идентичны?Еще как отличается. :)
Добрый день.
Уважаемые, если не затруднит посмотрите мое решение.
Решен только раздел расчета.
Доброго времени суток, JohnSilver !
Хотел бы задать вопрос по решению.
Без "задней мысли", самому интересно.
Вот ты все расчеты делаешь через "Движения" регистров расчета.
А в других примерах решений я видел через "НаборЗаписей".
Как правильнее решать - через "Движения" или через "НаборЗаписей" ?
Ребята, добрый день,кто подскажет по условию "В одном документе могут быть данные за разные
расчетные периоды" ?
Скажем, за март сотруднику оклад рассчитан.
Мы в апреле считаем оклад за апрель и сюда же,
в ТЧ, по условию задачи - можно "воткнуть" оклад
за март - частично или полностью.
По идее, оклад по предыдущему документу надо сторнировать.
Метод "ПолучитьДополнение" здесь не работает - оклад не может вытеснять
сам себя. Тут по-другому надо как-то.
В зарплатных решениях 1C это называется "исправление документа" -
в ТЧ нового документа "выкидываются" отсторнированные, "красные строки",
а ниже -новые.
Надо ли делать что-то в этом направлении или я сильно усложняю ?
Ребята, добрый день,кто подскажет по условию "В одном документе могут быть данные за разные
расчетные периоды" ?
Скажем, за март сотруднику оклад рассчитан.
Мы в апреле считаем оклад за апрель и сюда же,
в ТЧ, по условию задачи - можно "воткнуть" оклад
за март - частично или полностью.
По идее, оклад по предыдущему документу надо сторнировать.
Метод "ПолучитьДополнение" здесь не работает - оклад не может вытеснять
сам себя. Тут по-другому надо как-то.
В зарплатных решениях 1C это называется "исправление документа" -
в ТЧ нового документа "выкидываются" отсторнированные, "красные строки",
а ниже -новые.
Надо ли делать что-то в этом направлении или я сильно усложняю ?
Мне кажется сильно заморачиваешься, просто хотя бы предусмотри расчет в прошлом периоде и все.
Я когда готовился к экзамену, построил расчет премии в зависимости от стажа так:Добрый день. Увидел Ваше решение. Есть немного вопросов.
1. В справочнике "Сотрудники" добавил реквизит Стаж - стаж на момент принятия сотрудника на работу, и реквизит "Дата приема".
2. Регистр сведений "ШкалаСтажа" имеет измерение - СтажОт (число) и два ресурса: СтадДо (число) и Процент (число).
3. Код для расчета Премии:Код: [Выделить]...
...
ИначеЕсли ВидРасчета = ПланыВидовРасчета.ДополнительныеНачисления.Премия Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(БазаОсновныеНачисления.РезультатБаза, 0) КАК РезультатБаза,
| БазаОсновныеНачисления.НомерСтроки,
| ЕСТЬNULL(ШкалаСтажа.Процент, 0) КАК Процент,
| БазаОсновныеНачисления.Сотрудник.Стаж + РАЗНОСТЬДАТ(БазаОсновныеНачисления.Сотрудник.ДатаПриема, БазаОсновныеНачисления.ПериодРегистрации, ДЕНЬ) / 365 КАК Стаж
|ИЗ
| РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления(
| &Измер,
| &Измер,
| ,
| Регистратор = &Регистратор
| И ВидРасчета = &ВидРасчета) КАК БазаОсновныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШкалаСтажа КАК ШкалаСтажа
| ПО (БазаОсновныеНачисления.Сотрудник.Стаж + РАЗНОСТЬДАТ(БазаОсновныеНачисления.Сотрудник.ДатаПриема, БазаОсновныеНачисления.ПериодРегистрации, ДЕНЬ) / 365 >= ШкалаСтажа.СтажОт)
| И (ВЫБОР
| КОГДА ШкалаСтажа.СтажДо = 0
| ТОГДА ИСТИНА
| ИНАЧЕ БазаОсновныеНачисления.Сотрудник.Стаж + РАЗНОСТЬДАТ(БазаОсновныеНачисления.Сотрудник.ДатаПриема, БазаОсновныеНачисления.ПериодРегистрации, ДЕНЬ) / 365 < ШкалаСтажа.СтажДо
| КОНЕЦ)";
Измер = Новый Массив;
Измер.Добавить("Сотрудник");
Запрос.УстановитьПараметр("Измер", Измер);
Запрос.УстановитьПараметр("Регистратор", Регистратор);
Запрос.УстановитьПараметр("ВидРасчета", ВидРасчета);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Для Каждого Запись Из НаборЗаписей Цикл
Отбор = Новый Структура("НомерСтроки", Запись.НомерСтроки);
Выборка.Сбросить();
Если Выборка.НайтиСледующий(Отбор) Тогда
Запись.Результат = Выборка.РезультатБаза * Выборка.Процент / 100;
Запись.Стаж = Выборка.Стаж;
Запись.Процент = Выборка.Процент;
КонецЕсли;
КонецЦикла;
КонецЕсли;
При решении задачи необходимо учитывать, что на момент начала ведения учета в информационной базе у сотрудника уже может быть стаж отличный от нуля.Этот момент многие решают как в справочнике физ. лица создают реквизит "Стаж" типа число. Ну типо стаж в годах. Тут все понятно.
ВЫБРАТЬ
ВложенныйЗапросБаза.РезультатБаза,
ВложенныйЗапросБаза.ОбщийСтажНаПредприятии,
ЕСТЬNULL(РегистрПроцентПремии.ПроцентПремии, 0) КАК ПроцентПремии
ИЗ
(ВЫБРАТЬ
ДополнительныеНачисленияБазаОсновныеНачисления.РезультатБаза КАК РезультатБаза,
ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник.Стаж + РАЗНОСТЬДАТ(ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник.ДатаПриема, &ПериодРегистрации, ДЕНЬ) / 365 КАК ОбщийСтажНаПредприятии
ИЗ
РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления(
&Измерения,
&Измерения,
,
Регистратор = &Регистратор
И НомерСтроки = &НомерСтроки) КАК ДополнительныеНачисленияБазаОсновныеНачисления) КАК ВложенныйЗапросБаза
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцентПремии КАК РегистрПроцентПремии
ПО ВложенныйЗапросБаза.ОбщийСтажНаПредприятии >= РегистрПроцентПремии.СтажОт
И ВложенныйЗапросБаза.ОбщийСтажНаПредприятии <= РегистрПроцентПремии.СтажДо
Считать, что все данные вводятся только в пределах одного месяца, например, можно указать начисление оклада с 10.01 по 31.01, а запись оклад: с 10.01 по 03.02 вводить нельзя.Ни в одном из решений не увидел проверки на это. Это вообще надо делать? Или не обязательно? Будь я преподом, то в бутылку бы полез, раз уж четкое условие в задаче есть.))))
Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается.Тут понятно, что измерение "Подразделение" должно отсутствовать. В регистре сведений "СведенияОСотрудниках" такое измерение есть сразу в каркасной. Можно ли его удалить? Или может есть какие-то подводные камни, типа нельзя удалять ничего из каркасной?
ЦитироватьКаждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается.Тут понятно, что измерение "Подразделение" должно отсутствовать. В регистре сведений "СведенияОСотрудниках" такое измерение есть сразу в каркасной. Можно ли его удалить? Или может есть какие-то подводные камни, типа нельзя удалять ничего из каркасной?
Ребята, добрый день,кто подскажет по условию "В одном документе могут быть данные за разные
расчетные периоды" ?
Скажем, за март сотруднику оклад рассчитан.
Мы в апреле считаем оклад за апрель и сюда же,
в ТЧ, по условию задачи - можно "воткнуть" оклад
за март - частично или полностью.
По идее, оклад по предыдущему документу надо сторнировать.
Метод "ПолучитьДополнение" здесь не работает - оклад не может вытеснять
сам себя. Тут по-другому надо как-то.
В зарплатных решениях 1C это называется "исправление документа" -
в ТЧ нового документа "выкидываются" отсторнированные, "красные строки",
а ниже -новые.
Надо ли делать что-то в этом направлении или я сильно усложняю ?
Мне кажется сильно заморачиваешься, просто хотя бы предусмотри расчет в прошлом периоде и все.
Доброго времени суток, JohnSilver !
Не совсем понял, что ты имеешь в виду под расчетом прошлого периода - сторнирование, перерасчеты или что-то другое? Перерасчеты в задаче использовать не надо. Сторнирование не проходит, т.к. оклад не может вытеснять сам себя. А просто расчет прошлого периода - это пожалуйста, можно период регистрации поставить текущий, а период действия оклада - прошлый месяц. И сотруднику будет рассчитано 2 оклада за прошлый месяц...
Тут нет никакого условия. Это информация как раз о том, что кодеру ничего проверять не надо. Юзер будет вводить именно так, и лишь юзер за это отвечает.ЦитироватьСчитать, что все данные вводятся только в пределах одного месяца, например, можно указать начисление оклада с 10.01 по 31.01, а запись оклад: с 10.01 по 03.02 вводить нельзя.Ни в одном из решений не увидел проверки на это. Это вообще надо делать? Или не обязательно? Будь я преподом, то в бутылку бы полез, раз уж четкое условие в задаче есть.))))
Дважды оклад можно ввести и в одном месяце за этот же самый один месяц, например, разными документами. И даже в типовой такое никто не контролирует.Ребята, добрый день,кто подскажет по условию "В одном документе могут быть данные за разные
расчетные периоды" ?
Скажем, за март сотруднику оклад рассчитан.
Мы в апреле считаем оклад за апрель и сюда же,
в ТЧ, по условию задачи - можно "воткнуть" оклад
за март - частично или полностью.
По идее, оклад по предыдущему документу надо сторнировать.
Метод "ПолучитьДополнение" здесь не работает - оклад не может вытеснять
сам себя. Тут по-другому надо как-то.
В зарплатных решениях 1C это называется "исправление документа" -
в ТЧ нового документа "выкидываются" отсторнированные, "красные строки",
а ниже -новые.
Надо ли делать что-то в этом направлении или я сильно усложняю ?
Мне кажется сильно заморачиваешься, просто хотя бы предусмотри расчет в прошлом периоде и все.
Доброго времени суток, JohnSilver !
Не совсем понял, что ты имеешь в виду под расчетом прошлого периода - сторнирование, перерасчеты или что-то другое? Перерасчеты в задаче использовать не надо. Сторнирование не проходит, т.к. оклад не может вытеснять сам себя. А просто расчет прошлого периода - это пожалуйста, можно период регистрации поставить текущий, а период действия оклада - прошлый месяц. И сотруднику будет рассчитано 2 оклада за прошлый месяц...
Ребята, доброго времени суток!
Кто-нибудь может прокомментировать по этому вопросу ?
Как быть, если оклад рассчитан в прошлом периоде, и мы ещё раз его начисляем в текущем?
У меня 2 оклада начисляется сотруднику, это нормально ?
Я у себя все равно сделал эти проверки. Думаю защита от дурака лишним не будет. :)Доброго времени суток, pyrkin_vanya !
Думаю защита от дурака лишним не будет. :)Если останется время, лишним не будет.
Подскажите, кто знает, как вывести на форме документа ссылки - переход на регистр-движения по данному документу.
Увидел это в одном из решённых примеров, а какими настройками это сделано найти не могу.
Сверху над кнопками во всех документах(свои регистры) :
Главное Остатки товаров Партии товаров
Добрый день.
Подскажите пожалуйста для чего используется
Движения.ОстаткиТоваров.Записать(); ?
Ведь достаточно Движения.ОстаткиТоваров.Очистить().
Как удобно, так и заводи.., будь это реквизит в справочнике, будь регистр сведений - не важно, самое главное без изысков.
Белоусов говорит, как я понял, что не стоит заострять внимание на мелочах, в любых задачах главное показать технику создания или настройку объектов того или иного объекта при решении определенной задачи. Например, при решении задач по расчетам важнее всего показать настройку зависимостей того или иного вида расчета + программная реализация соответственно. А что там с хранением доп инфы - это вторично.
"Об этих мелочах не стоит задумываться" - не совсем так, если хочешь 5, то нужно и об этом задуматься....
... А в вашем запросе и дата приема также должна быть обязательно заполнена. Вы какие то проверки делали на это?
Всем привет ;)Добрый день! Посмотрел решение в части БУ. На счете "Товары" у субконто не снята галка суммового учета. В запросе сортируете по ссылке на справочник "СрокиГодности", а это не равно сортировке по дате. В отчете остатки нет отбора по счету(получаете остатки по всем счетам).
Посмотрите мое решение пожалуйста!
Буду рад объективной и конструктивной критике.
:) :) :)
Всем привет ;)Доброго дня. Сам недавно взялся готовиться. Пока анализирую информацию по задачам ОУ. В ответе #441 : Апреля 18, 2017, 01:59:43 pm пользователь strizhhh выкладывал свой вариант билета с подробными комментариями. На мой взгляд, довольно толковый вариант. Так вот если сравнивать задачу по ОУ есть вопросы:
Посмотрите мое решение пожалуйста!
Буду рад объективной и конструктивной критике.
:) :) :)
Доброго дня!Посмотрел пока задачу ОУ и бизнес-процесс(сам сейчас прорешиваю на второй раз).По ОУ у меня вопрос: зачем написали "И ОсталосьСписать <> 0 Цикл". Почему не использовать только ">" сравнение? И еще вы отключили оперативное проведение у расходной накладной - может докапаться принимающий.
Выкладываю своё решение.
Покритикуйте, пожалуйста.
Задавайте вопросы.
Возможно, моя база поможет кому-то лучше
понять, как решать билеты - буду рад.
Kremlin, посмотрел твоё решение по БП.флажок "групповая" ставим, если на блок-схеме прямоугольник объемный(тень отбрасывает) :)
Да, без Петрова можно обойтись :-)
Здесь персональная адресация идет -
задача ему сразу и попадает.
Есть вопрос по действию "Отгрузка".
У тебя стоит галочка в конфигураторе "Групповая".
И создается 3 задачи на отгрузку - на каждого кладовщика своя.
Разве так должно быть ?
У меня в решении 1 задача создается, галочку "Групповая" я не ставил.
ОУ не смотрел ещё.
Kremlin, посмотрел ОУ в твоем билете.Разница есть, я сейчас не вспомню какая именно. Но для себя запомнил, что брать пустую дату более правильней чем НЕОПРЕДЕЛЕНО
Вроде красиво всё.
Один вопрос по оперативному проведению.
Ты присваиваешь пустую дату, если оперативный режим.
А там разве не НЕОПРЕДЕЛЕНО надо?
Есть ли разница между пустой датой ?
Kremlin, посмотрел твоё решение по БП.флажок "групповая" ставим, если на блок-схеме прямоугольник объемный(тень отбрасывает) :)
Да, без Петрова можно обойтись :-)
Здесь персональная адресация идет -
задача ему сразу и попадает.
Есть вопрос по действию "Отгрузка".
У тебя стоит галочка в конфигураторе "Групповая".
И создается 3 задачи на отгрузку - на каждого кладовщика своя.
Разве так должно быть ?
У меня в решении 1 задача создается, галочку "Групповая" я не ставил.
ОУ не смотрел ещё.
Просьба посмотреть, проверить решение первого билета. Решены все задачи билета.
ОУ, БУ, СПРСпасибо.
Подскажите кто нибудь. Для чего перед записью мы очищаем и записываем регистр бухгалтерии?
Движения.Управленческий.Очистить();
Движения.Управленческий.Записать();
Я спрашиваю к тому что не легче просто у документа указать автоматически удалять движения? В чем преимущества этого способа?
Подскажите кто нибудь. Для чего перед записью мы очищаем и записываем регистр бухгалтерии?
Движения.Управленческий.Очистить();
Движения.Управленческий.Записать();
Я спрашиваю к тому что не легче просто у документа указать автоматически удалять движения? В чем преимущества этого способа?
Неужели все просто так пишут и не задаются вопросом???
Подскажите кто нибудь. Для чего перед записью мы очищаем и записываем регистр бухгалтерии?Очистить() используется исключительно для универсальности проведения в обычных и упр формах, а также при наличии прочитанных движений. В этой задаче мы принудительно записываем пустой набор, для того, чтобы при чтении остатков старые движения не попали в расчет виртуальных таблиц Источник: ©Курсы-по-1С.рф
Движения.Управленческий.Очистить();
Движения.Управленческий.Записать();
Я спрашиваю к тому что не легче просто у документа указать автоматически удалять движения? В чем преимущества этого способа?
АндрейН, фраза "совместительство быть не может" как раз и означает, что не может сотрудник работать в двух или более подразделениях. Значит измерение "Подразделение" в расчетных регистрах не нужно. Проверку на услуги нужно делать в модуле документов, можно сразу в запросе откидывать условием. Рекомендую посмотреть видео Павла Чистова, также хороши решения билетов от SAE. А сейчас у вас много мыслей, своих додумок и народ в заблуждение вводите ими.Вы путаете и неправильно прочитали мой пост, а потом обвиняете меня что я кого то ввожу в заблуждение - вашим неправильным прочтением.
подразделениеВыскажу свою т.з. по данному моменту.
2) В расходе по услугам не надо проверять остаток - просто списать.
3) В расходе количество ставить "0" чтобы не было отрицательных остатков.
Или лучше отдельный регистр для услуг - без количества и без склада? Т.к. в остатки(билет 1), или в партии(билет 2) как-то неправильно услуги записывать
Ещё что-то?
2) 3) Думаю, что услуги учитывать не надо в остатках, услуги учитываются только в регистрах продаж.Купить и продать услуги - перевыставление услуги(например эл.энергия перевыставляется арендатору :) Но в рамках экзамена это не используется.
Если рассуждать логически, то как можно купить услугу, а потом ее продать? Я такого не видел. Если кто встречал, напишите.
Может лучше для них завести отдельный регистр?Не думаю, что надо заводить РН, это будет ошибка. В курсах от Белоусова, Чистова и других, услуги в приходе не учитываются, они игнорируются. Не в одной задаче по ОУ не сказано про учет услуг в приходе.
Про приход я имел в виду то что про моё решение Juliamosus в теме написала что надо было сделать проверку в приходе услуг чтобы пользователь не ввёл в приходе товар с типом "услуга". Вот я и засомневался - надо ли делать это проверку?Может лучше для них завести отдельный регистр?Не думаю, что надо заводить РН, это будет ошибка. В курсах от Белоусова, Чистова и других, услуги в приходе не учитываются, они игнорируются. Не в одной задаче по ОУ не сказано про учет услуг в приходе.
Про приход я имел в виду то что про моё решение Juliamosus в теме написала что надо было сделать проверку в приходе услуг чтобы пользователь не ввёл в приходе товар с типом "услуга". Вот я и засомневался - надо ли делать это проверку?Думаю, дело вот в чем. Поскольку возможно оказание услуг, номенклатура может быть товаром или услугой. Поэтому и при приходе надо проверять, какой вид номенклатуры в накладной. Но, на мой взгляд, это должно быть не вылавливание ошибок пользователя, а как и при расходе - отсеивание услуг при записи в регистр, т.е. пусть в доке они будут, а в регистр пишем только товар.
На мой взгляд если для учёта товаров нет регистра где бы регистрировались продажи, а услуги учитывать надо, то может всё же целесообразно в отдельном регистре "ПродажиУслуг"Как раз наоборот - учитывать их не надо. А возможность их оказания влечет лишь необходимость проверки и их отсеивания при записи в РН.
Или если нет отчётов по услугам вообще их ни в какой регистр не записывать - тупо игнорировать.Ага.
Всем привет ;)Доброго дня. Сам недавно взялся готовиться. Пока анализирую информацию по задачам ОУ. В ответе #441 : Апреля 18, 2017, 01:59:43 pm пользователь strizhhh выкладывал свой вариант билета с подробными комментариями. На мой взгляд, довольно толковый вариант. Так вот если сравнивать задачу по ОУ есть вопросы:
Посмотрите мое решение пожалуйста!
Буду рад объективной и конструктивной критике.
:) :) :)
1. В документе "Приходная накладная" данные для записи в регистры группируются запросом, в котором одновременно отсекаются услуги. Нужно ли делать так или можно обойтись перебором ТЧ документа?
2. В РН не включен режим разделения итогов
3. А чего контроль остатков в расходной накладной не по новой методике?
Добрый день. Начал заниматься по спецу. Прокомментируйте пожалуйста решение по ОУ. Спасибо.А потом по БУ, а потом еще раз по СПР и на финиш по бизнес процессам.
Добрый день. Начал заниматься по спецу. Прокомментируйте пожалуйста решение по ОУ. Спасибо.А потом по БУ, а потом еще раз по СПР и на финиш по бизнес процессам.
Уважайте время других, по конкретным задачам так же есть разделы.
Я бы не смотрел.
Добрый день.1. В СПР непонятно как база от оклада у премии рассчитывается. Один запрос, который подготавливает данные как для оклада, так и для премии(часть запроса для премии берёт базу). По-идее пока оклад(полностью рассчитанный) не запишется - базы не будет. База премии берётся до того как записывается оклад.
Попался этот билет на экзамене, сдал на 4ку.
...
Добрый день. Начал заниматься по спецу. Прокомментируйте пожалуйста решение по ОУ. Спасибо.Ошибок не заметил. Всё что должно быть - вроде есть.
Добрый день.1. В СПР непонятно как база от оклада у премии рассчитывается. Один запрос, который подготавливает данные как для оклада, так и для премии(часть запроса для премии берёт базу). По-идее пока оклад(полностью рассчитанный) не запишется - базы не будет. База премии берётся до того как записывается оклад.
Попался этот билет на экзамене, сдал на 4ку.
...
2. Услуги не фильтруются в расходе(и приходе)
Где вы там в запросе увидели, что берется база для премии? База для премии берется в общем модулем, после расчета и записи оклада.Да, действительно.
Добрый день.
Попался этот билет на экзамене, сдал на 4ку.
Подробное описание как готовился и рекомендации в ветке "Результат сдачи экзамена" стр. 235
В тексте задачи по СПР было добавлено условие: В форме документа "Начисление зарплаты" необходимо предусмотреть наличие кнопки "Рассчитать", при нажатии на которую, будет произведен расчет зарплаты. Результат расчета должен быть отражен в табличной части этой же формы.
В документе могут быть данные только за текущий расчетный период.
Во вложении ДТ с экзамена.
Сдал спеца 09.06.17. Хочу поделиться своими решениями билетов. Спасибо всем участникам за обсуждение и выкладываемые решения. Это серьезная помощь в подготовке к экзамену.Выложи cf-ник пожалуйста а то Платформы 8.3.10 нет сейчас у меня. Заранее Спасибо.
Держи. Кстати обрати внимание на то, что остатки надо проверять и по регистру ОстаткиНоменклатуры и по СебестоимостьНоменклатуры. Аргументы типа:Сдал спеца 09.06.17. Хочу поделиться своими решениями билетов. Спасибо всем участникам за обсуждение и выкладываемые решения. Это серьезная помощь в подготовке к экзамену.Выложи cf-ник пожалуйста а то Платформы 8.3.10 нет сейчас у меня. Заранее Спасибо.
Аргументы типа:
- остатки проверяются на регистре ОстаткиНоменклатуры, а на СебестоимостьНоменклатуры проверка будет лишней
- если остатки поверил по конкретному складу (ОстаткиНоменклатуры), а уж по всем складам (СебестоимостьНоменклатуры ) товара конечно хватит
и т.д. не взлетают.
Добрый день.
Попался этот билет на экзамене, сдал на 4ку.
Подробное описание как готовился и рекомендации в ветке "Результат сдачи экзамена" стр. 235
В тексте задачи по СПР было добавлено условие: В форме документа "Начисление зарплаты" необходимо предусмотреть наличие кнопки "Рассчитать", при нажатии на которую, будет произведен расчет зарплаты. Результат расчета должен быть отражен в табличной части этой же формы.
В документе могут быть данные только за текущий расчетный период.
Во вложении ДТ с экзамена.
Повезло)))) Ведь ты не учитываешь Услуги при продаже.
А можно удалять объекты из каркасной конфигурации?. За это не снижают балы?
А можно удалять объекты из каркасной конфигурации?. За это не снижают балы?Белоусов на своем тренинге не рекомендует удалять объекты.
Просьба посмотреть и прокомментировать моё решение билета (решены все задачи). В решениях я писал пояснения и комментарии. Постарался собрать описание всех основных нюансов, на которые обращают внимание экзаменаторы, со слов тех, кто уже сдавал и со слов некоторых преподавателей.
1. Зачем справочник СрокиГодности? В субконто есть тип Дата.Вы правы (но только в контексте экзамена). На экзамене разрешается использовать субконто примитивного типа (а вообще это грубое нарушение методики).
2. Копейки в расходной накладной. Предложила бы списывать себестоимость так: Себестоимость = Мин(Списать * СебестоимостьЗаЕдиницу, СуммаОстаток)Не знаю, что в решении, которое вы смотрели, но ваш вариант точно не верен. Прежде всего, непонятно, что такое у вас СебестоимостьЗаЕдиницу. Но даже если предположить, что вы таким образом сократили ОстатокСумма/ОстатокКоличество, то в том случае, когда списывается всё количество и при этом СебестоимостьЗаЕдиницу < СуммаОстаток, копейки как раз и зависнут.
СумСписать = ? (КолСписать = ВыбДет.КолОст, ВыбДет.СумОст, КолСписать / ВыбДет.КолОст * ВыбДет.СумОст);(как в том решении, не смотрел).
1. Вычисление стажа из регистра сведений. Это рекомендация чья то?Вроде не было отзывов о замечаниях по способу получения стажа и хранения данных для него. Я при подготовке в спр ФизЛица добавлял рекв ДатаПриемаНаРаботу и от него рассчитывал стаж на нужный момент. По поводу фразы "При решении задачи необходимо учитывать, что на момент начала ведения учета в информационной базе у сотрудника уже может быть стаж отличный от нуля" скажу так - это не мешает нам вводить фактическую дату приема на работу, если она ранее "начала ведения учета".
Сдал спеца 09.06.17. Хочу поделиться своими решениями билетов. Спасибо всем участникам за обсуждение и выкладываемые решения. Это серьезная помощь в подготовке к экзамену.
| ТЧ КАК ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &Субконто,
| Субконто1 В
| (ВЫБРАТЬ
| Т.Номенклатура
| ИЗ
| ТЧТовары КАК Т)) КАК УправленческийКоличество
| ПО ТЧ.Номенклатура = УправленческийКоличество.Субконто1
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &Субконто,
| Субконто1 В
| (ВЫБРАТЬ
| Т.Номенклатура
| ИЗ
| ТЧТовары КАК Т)) КАК УправленческийСумма
| ПО ТЧ.Номенклатура = УправленческийСумма.Субконто1
Добрый день!
Также начал подготовку к экзамену. Ознакомился с вашим решением и если не сложно, могли бы вы ответить.
В РасходнойНакладной в запросе для БУ левое соединение 2 таблиц РБ, сначала по кол-ву, затем по сумме. Непонятно, почему не 1 - условия отбора одинаковые.
Важно понимать что
1) виртуальные таблицы регистра бухгалтерии всегда сгруппированы
2) признаки учета субконто устанавливаются не просто так ;)
В данном решении из таблицы УправленческийКоличество получаю КоличествоОстаток (группировка Номенклатура, СрокГодности), а из таблицы УправленческийСумма (группировка Номенклатура) получаю СуммаОстаток.
Движения.Управленческий.Записать();
Движения.СебестоимостьНоменклатуры.Записать();
Движения.Управленческий.Очистить();
Движения.СебестоимостьНоменклатуры.Очистить();
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.Управленческий.Записать();
Движения.СебестоимостьНоменклатуры.Записать();
КонецЕсли;
Мысль с 2 таблицами понятна, вытекает из условий задачи. Необходима сумма по всему остатку товара без учета Субконто2 (СрокГодности).
Заметил еще такой момент - запись в регистры Управленческий и СебестоимостьНоменклатуры.Код: [Выделить]Движения.Управленческий.Записать();
Движения.СебестоимостьНоменклатуры.Записать();
Насколько я помню, запись нужна при оперативном проведении док-та (из-за сдвига времени и признака "Удалять движения при отмене проведения").
Необходима ли проверка на РежимПроведения и дополнительную очистку движений (т.к. могли быть прочитаны старые движения)?Код: [Выделить]Движения.Управленческий.Очистить();
Движения.СебестоимостьНоменклатуры.Очистить();
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.Управленческий.Записать();
Движения.СебестоимостьНоменклатуры.Записать();
КонецЕсли;
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ДополнительныеСвойства.Вставить("Проведен", Проведен);
КонецПроцедуры
Если ДополнительныеСвойства.Проведен Тогда
Движения.СебестоимостьНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.Управленческий.БлокироватьДляИзменения = Истина;
Движения.СебестоимостьНоменклатуры.Записать();
Движения.Управленческий.Записать();
КонецЕсли;
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &МоментВремениВключая,
| Номенклатура В
| (ВЫБРАТЬ
| Т.Номенклатура
| ИЗ
| ТЧТовары КАК Т)) КАК ОстаткиНоменклатурыОстатки
При проверке остатков в запросе в предложении ИЗ нет проверки по складу. В вашем решении Склад - первое измерение в регистре ОстаткиНоменклатуры. Неэффективная работа запроса.При списании себестоимости вы делаете еще одну проверку остатков, но уже по регистрам Управленческий и СебестоимостьНоменклатурыОстатки. Надо ли это делать?
Я тоже только начал подготовку, и тоже возникли вопросы. Почему не производится блокировка по старым движениям? В случае перепроведения документа и отката транзакции возможна ситуация, когда номенклатура из старых движений будет уже кем-то использована.
Правильным вариантом видится:Код: [Выделить]Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ДополнительныеСвойства.Вставить("Проведен", Проведен);
КонецПроцедуры
Если ДополнительныеСвойства.Проведен Тогда
Движения.СебестоимостьНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.Управленческий.БлокироватьДляИзменения = Истина;
Движения.СебестоимостьНоменклатуры.Записать();
Движения.Управленческий.Записать();
КонецЕсли;
проверку на остатки необходимо делать по каждом учетном регистру ибо нет синхронизации между ними.
первое - пока успешно не завершилась транзакция никаких ваших "новых" движений для всех остальных пользователей не существует (следовательно нет и "старых", они вообще либо есть либо их нет) и второе сколько я понимаю "старые" движения документа должны блокироваться объектной блокировкой самой системой (Движения - это реквизит объекта)Спасибо, добавил в шпаргалку.
Как было разъяснено на этом форуме, проверку на остатки необходимо делать по каждом учетном регистру ибо нет синхронизации между ними.
Поиск = Новый Структура("НомерСтроки");
Для каждого Движение Из Движения.Дополнительные Цикл
Поиск.НомерСтроки = Движение.НомерСтроки;
Пока ВыборкаДН.НайтиСледующий(Поиск) Цикл
Движение.Сумма = ВыборкаДН.СуммаБаза*ВыборкаДН.Процент/100;
КонецЦикла;
ВыборкаДН.Сбросить();
КонецЦикла;
Пока Выборка.Следующий() Цикл
Движения.Основные[Выборка.НомерСтроки-1].Сумма = Выборка.Ставка*Выборка.Факт/Выборка.План;
КонецЦикла;
Подскажите, пожалуйста, есть ли принципиальная разница между этими двумя вариантами обхода. При помощи структуры поиска и без нее.
Подскажите, пожалуйста, есть ли принципиальная разница между этими двумя вариантами обхода. При помощи структуры поиска и без нее.
Индекс не всегда = НомерСтроки -1, так что второй вариант неправильный.
Ну то есть он скорее всего будет работать, но неправильный методически.
Еще вопрос.Вы читали перечень ошибок из "Требований..."?
Серьезной ли ошибкой будет НЕ делать индексирование во всех этих самодельных временных таблицах. Ведь вроде как при маленькой базе это только вредно?
В задачах получения данных из информационной базы установка отборов по неиндексированным полям - 0,5 балла
Вы читали перечень ошибок из "Требований..."?ЦитироватьВ задачах получения данных из информационной базы установка отборов по неиндексированным полям - 0,5 балла
как вы получаете данные графика?
Друзья,подскажите, почему не идет база для премии.
Всю голову сломал.
TUBORG14Ребяты, дорогие мои, ну Вы вооще !!! Мне тут письма пишут чтобы я все выгрузки зипанул и почте прислал. Давайте я все разжую и в клювик положу. А лучше еще разок на экзамен схожу вместо Вас :)
если есть возможность редактировать - пометь в своем посте где конфу выкладываешь, что услуги забиты в номенклатуру.
TUBORG14Ребяты, дорогие мои, ну Вы вооще !!! Мне тут письма пишут чтобы я все выгрузки зипанул и почте прислал. Давайте я все разжую и в клювик положу. А лучше еще разок на экзамен схожу вместо Вас :)
если есть возможность редактировать - пометь в своем посте где конфу выкладываешь, что услуги забиты в номенклатуру.
P.S. А куда же еще услуги должны быть "забиты"?
... как делить ибо на экзамене ...Очень просто - для ОУ и БУ писать совершенно независимые блоки в процедуре проведения. Блоки работают в зависимости от значения реквизитов ОУ и БУ типа булево расходной накладной.
... как делить ибо на экзамене ...Очень просто - для ОУ и БУ писать совершенно независимые блоки в процедуре проведения. Блоки работают в зависимости от значения реквизитов ОУ и БУ типа булево расходной накладной.
Ничего не нужно делить по флагу булево. Был задан вопрос экзаменатору: "Можно разделить проведение РН по ОУ и БУ, например флагом вкл или выкл одного из учетом", Ответ: "Для теста можете использовать что хотите, но проведение документа должно двигать оба регистры по ОУ и БУ".Во многих комбинациях ОУ-БУ невозможно одновременно проводить РН по ОУ и БУ.
Рекомендую решать без какого либо флага. Самое главное: Реализация алгоритма, Блокировки, параметры вирт. таблиц.
В решениях этот отбор обычно делают, но ведь при указании конкретного счета он довольно бессмысленен.Отборы должны быть по максимуму.
Решила ОУи БУ из билета 1.Смотрел только ОУ.
если есть время, можете прокомментировать мое решение
списание суммы в ноль по партии выходить не будет, только по количеству.Я только начал решать БУ. Можете выложить базу и запрос, в которых можно увидеть эту проблему?
Насколько это правильно, ведь постоянно будет копиться суммовой остаток по партиям?
Всем привет,Там не нужны партии, списание по среднему. Для того, чтобы не копился суммовой остаток, нужно использовать признак учета субконто "Суммовой", т.е. вести только суммовой остаток (итоговой) по номенклатуре
решил досконально разобрать билеты, сразу возник вопрос -
при решении бухгалтерской задачи возникает затык
"Себестоимость определяется как средняя по товару по всем срокам годности. Т.е. например если 1 пачка йогурта со сроком годности 10.01.2010 поступила по цене 90 рублей и еще 1 пачка того же йогурта, но со сроком годности 30.01.2010 поступила по цене 110 рублей, то при списании себестоимость одной пачки данного йогурта равна 100 рублей."
соответственно списание суммы в ноль по партии выходить не будет, только по количеству.
Насколько это правильно, ведь постоянно будет копиться суммовой остаток по партиям?
Решила ОУи БУ из билета 1.Почему задачу по ОУ решили построить на двух регистрах? // дальше не смотрела ОУ
если есть время, можете прокомментировать мое решение
Почему задачу по ОУ решили построить на двух регистрах? // дальше не смотрела ОУИз вашего вопроса, я так понимаю, это неправильно?
во всех задачах с расчетом себестоимости надо использовать старую методику. Лично я принцип определения методики формулирую так: "Новая методика в том случае, если для ее применения не надо создавать дополнительных регистров и даже доп ресурсов в существующих регистрах. Если есть необходимость создания доп объектов исключительно для новой методики, использование новой методики на экз скорее всего будет признано неэффективным".Но у меня вопрос по поводу эффективности. Два регистра - два показателя, две различные цели. Регистр остатков для быстрой проверки остатков и избавления от необходимости формировать более тяжеловесные движения по расчету себестоимости и движения по РБ. Да, мы вынуждены еще раз проверять остатки по регистру партий (синхронизация между регистрами не предусмотрена), но к этому этапу мы готовы, ведь остатки позволяют. В противном случае можем поиметь дополнительную бестолковую блокировку регистра партий. Задаю этот вопрос не потому что не согласен с Вашим мнением, а потому что хотелось бы знать как оппонировать этим аргументам.
Но у меня вопрос по поводу эффективности. Два регистра - два показателя, две различные цели. Регистр остатков для быстрой проверки остатков и избавления от необходимости формировать более тяжеловесные движения по расчету себестоимости и движения по РБ. Да, мы вынуждены еще раз проверять остатки по регистру партий (синхронизация между регистрами не предусмотрена), но к этому этапу мы готовы, ведь остатки позволяют. В противном случае можем поиметь дополнительную бестолковую блокировку регистра партий. Задаю этот вопрос не потому что не согласен с Вашим мнением, а потому что хотелось бы знать как оппонировать этим аргументам.Это мнение не моё. :)
Почему задачу по ОУ решили построить на двух регистрах? // дальше не смотрела ОУИз вашего вопроса, я так понимаю, это неправильно?
В соседнем топе alex1248 поясняет это такво всех задачах с расчетом себестоимости надо использовать старую методику. Лично я принцип определения методики формулирую так: "Новая методика в том случае, если для ее применения не надо создавать дополнительных регистров и даже доп ресурсов в существующих регистрах. Если есть необходимость создания доп объектов исключительно для новой методики, использование новой методики на экз скорее всего будет признано неэффективным".Но у меня вопрос по поводу эффективности. Два регистра - два показателя, две различные цели. Регистр остатков для быстрой проверки остатков и избавления от необходимости формировать более тяжеловесные движения по расчету себестоимости и движения по РБ. Да, мы вынуждены еще раз проверять остатки по регистру партий (синхронизация между регистрами не предусмотрена), но к этому этапу мы готовы, ведь остатки позволяют. В противном случае можем поиметь дополнительную бестолковую блокировку регистра партий. Задаю этот вопрос не потому что не согласен с Вашим мнением, а потому что хотелось бы знать как оппонировать этим аргументам.
Я только начал решать БУ. Можете выложить базу и запрос, в которых можно увидеть эту проблему?
Код: [Выделить]//Бухгалтерский учет
Функция БухгалтерскийУчет(Отказ, Режим)
// Включим движения по регистрам и заблокируем необходимые
///////////////////////
//Движения
Движения.РегистрБухгалтерии1.Очистить();
Движения.РегистрБухгалтерии1.Записать();
Движения.РегистрБухгалтерии1.Записывать = Истина;
//Заблокируем регистр
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.РегистрБухгалтерии1");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Счет",ПланыСчетов.Управленческий.Товары);
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Субконто1", "Номенклатура");
Блокировка.Заблокировать();
//Запишем данные в регистр бух
///////////////////////////
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК ДокНоменклатура,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК ДокКоличество,
| РасходнаяНакладнаяСписокНоменклатуры.Сумма
|ПОМЕСТИТЬ ВТДокументРасходнаяНакладная
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
| И РасходнаяНакладнаяСписокНоменклатуры.ВидНоменклатуры = &ВидНоменклатуры
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.Сумма
|
|ИНДЕКСИРОВАТЬ ПО
| ДокНоменклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТДокументРасходнаяНакладная.ДокНоменклатура КАК ДокНоменклатура,
| ВТДокументРасходнаяНакладная.ДокКоличество КАК ДокКоличество,
| РегистрБухгалтерии1Остатки.Субконто2 КАК СрокГодности,
| ЕСТЬNULL(РегистрБухгалтерии1Остатки.КоличествоОстаток, 0) КАК РегистрКоличествоОстаток,
| РегистрБухгалтерии1Остатки.СуммаОстаток КАК РегистрСуммаОстаток,
| ВТДокументРасходнаяНакладная.Сумма КАК ДокСумма
|ИЗ
| ВТДокументРасходнаяНакладная КАК ВТДокументРасходнаяНакладная
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.РегистрБухгалтерии1.Остатки(
| &МоментВремени,
| Счет = &Счет,
| &МассивСубконто,
| Субконто1 В
| (ВЫБРАТЬ
| ВТДокументРасходнаяНакладная.ДокНоменклатура
| ИЗ
| ВТДокументРасходнаяНакладная КАК ВТДокументРасходнаяНакладная)) КАК РегистрБухгалтерии1Остатки
| ПО ВТДокументРасходнаяНакладная.ДокНоменклатура = РегистрБухгалтерии1Остатки.Субконто1
|
|УПОРЯДОЧИТЬ ПО
| РегистрБухгалтерии1Остатки.Субконто2
|ИТОГИ
| МАКСИМУМ(ДокКоличество),
| СУММА(РегистрКоличествоОстаток),
| СУММА(РегистрСуммаОстаток)
|ПО
| ДокНоменклатура";
МассивСубконто = Новый Массив;
МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности);
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Запрос.УстановитьПараметр("МассивСубконто",МассивСубконто);
Запрос.УстановитьПараметр("МоментВремени",МоментВремени());
Запрос.УстановитьПараметр("Счет",ПланыСчетов.Управленческий.Товары);
Запрос.УстановитьПараметр("ВидНоменклатуры",Перечисления.ВидыНоменклатуры.Товар);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
//Выбрать номенклатуру
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.ДокКоличество > ВыборкаДетальныеЗаписи.РегистрКоличествоОстаток Тогда
Нехватает = ВыборкаДетальныеЗаписи.ДокКоличество - ВыборкаДетальныеЗаписи.РегистрКоличествоОстаток;
Отказ = Истина;
Сообщить ("На складах фирмы не хватает "+ ВыборкаДетальныеЗаписи.ДокНоменклатура +" в количестве "+ Нехватает);
КонецЕсли;
СебестоимостьНоменклатуры = ВыборкаДетальныеЗаписи.РегистрСуммаОстаток/ВыборкаДетальныеЗаписи.РегистрКоличествоОстаток;
СписатьВсегоКоличество = ВыборкаДетальныеЗаписи.ДокКоличество;
СписатьВсегоСумма = ВыборкаДетальныеЗаписи.РегистрСуммаОстаток;
ВыборкаТелаГруппы = ВыборкаДетальныеЗаписи.Выбрать();
//пройти по группе номенклатуры и списать всю номенклатуру
Пока ВыборкаТелаГруппы.Следующий() И СписатьВсегоКоличество > 0 И НЕ Отказ Цикл
СписатьВПроводке = МИН(СписатьВсегоКоличество,ВыборкаТелаГруппы.РегистрКоличествоОстаток);
Движение = Движения.РегистрБухгалтерии1.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
Движение.Период = Дата;
Движение.Количество = СписатьВПроводке;
Если СписатьВсегоКоличество = ВыборкаТелаГруппы.РегистрКоличествоОстаток И ВыборкаДетальныеЗаписи.ДокКоличество = ВыборкаДетальныеЗаписи.РегистрКоличествоОстаток Тогда
Движение.Сумма = СписатьВсегоСумма;
Иначе
Движение.Сумма = СебестоимостьНоменклатуры*ВыборкаТелаГруппы.РегистрКоличествоОстаток;
КонецЕсли;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = ВыборкаТелаГруппы.ДокНоменклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.СрокГодности] = ВыборкаТелаГруппы.СрокГодности;
СписатьВсегоСумма = СписатьВсегоСумма - Движение.Сумма;
СписатьВсегоКоличество = СписатьВсегоКоличество - СписатьВПроводке;
КонецЦикла;
КонецЦикла;
Если НЕ Отказ Тогда
Движение = Движения.РегистрБухгалтерии1.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.Период = Дата;
Движение.Сумма = СписокНоменклатуры.Итог("Сумма");
КонецЕсли;
КонецФункции // ()
Там не нужны партии, списание по среднему. Для того, чтобы не копился суммовой остаток, нужно использовать признак учета субконто "Суммовой", т.е. вести только суммовой остаток (итоговой) по номенклатуре
Всем привет,Отключайте суммовой учет по срокам годности. Подробности обсуждались много раз, почитайте ветку, и можете посмотреть в выложенных решениях.
решил досконально разобрать билеты, сразу возник вопрос -
при решении бухгалтерской задачи возникает затык
"Себестоимость определяется как средняя по товару по всем срокам годности. Т.е. например если 1 пачка йогурта со сроком годности 10.01.2010 поступила по цене 90 рублей и еще 1 пачка того же йогурта, но со сроком годности 30.01.2010 поступила по цене 110 рублей, то при списании себестоимость одной пачки данного йогурта равна 100 рублей."
соответственно списание суммы в ноль по партии выходить не будет, только по количеству.
Насколько это правильно, ведь постоянно будет копиться суммовой остаток по партиям?
В условиях билета № 1. . Значение учетной политики меняется не чаще одного раза в год. Как я понимаю на примере: Установили на 01.01.2017 и один раз за год мы можем изменить к примеру на 04.05.2017. А почему во всех примера стоит у РС Учетная Политика - переодичность в пределах года. Которая по сути дает только устанавливать раз в год значение РС. Я просто не могу понять почему у всех решено " пределах года": Изменилось условие в задачах или я не правильно условие задачи не понимаю и все решают верно???Значение учетной политики меняется не чаще одного раза в год. Это значит, что переодичность у РС "В пределах года".
в общем, довертесь большинству ;)Спасибо
Что значит "скоростное"?это я готовлюсь к экзамену и решал билет на время
Какое лучшее время по скоростному прохождению?Что значит "скоростное"?это я готовлюсь к экзамену и решал билет на время
пока только 3 часа 15 минут это рекорд а в среднем около 3 часов 40 минутКакое лучшее время по скоростному прохождению?Что значит "скоростное"?это я готовлюсь к экзамену и решал билет на время
Добрый день!
Часть людей сдает экзамен с решением ОУ через "новую" + "старую" методику, часть только через "старую"
Если за решение только через "старую" методику гарантировано не снимают балы за "менее эффективное решение", то какой смысл в решении использовать "новую", ведь она гораздо затратнее по времени написании кода в сравнении с традиционной.
В тоже время практически все последние решения первого билета в данной теме с использованием новой методики.
Возможно я чего-то недопонимаю, но в чем логика использования новой методики контроля остатков в данной задаче?
(понимаю, что данный вопрос уже не раз пережевывался на этом форуме, но окончательного решения я так и не нашел)
Перечитал ветку, наиболее вменяемый вариант решения от выдает следующий отчет...Отключайте суммовой учет по срокам годности. Подробности обсуждались много раз, почитайте ветку, и можете посмотреть в выложенных решениях.
Насколько это правильно, ведь постоянно будет копиться суммовой остаток по партиям?
Добрый день!
Часть людей сдает экзамен с решением ОУ через "новую" + "старую" методику, часть только через "старую"
Если за решение только через "старую" методику гарантировано не снимают балы за "менее эффективное решение", то какой смысл в решении использовать "новую", ведь она гораздо затратнее по времени написании кода в сравнении с традиционной.
В тоже время практически все последние решения первого билета в данной теме с использованием новой методики.
Возможно я чего-то недопонимаю, но в чем логика использования новой методики контроля остатков в данной задаче?
(понимаю, что данный вопрос уже не раз пережевывался на этом форуме, но окончательного решения я так и не нашел)
Новую методику где то можно и применить, так как если не выбирать что делать могут на удаленке скинуть баллы за незнание новой методики. При офлайн сдаче - можете в принципе еще доказать преподу что вы не шланг.
Перечитал ветку, наиболее вменяемый вариант решения от выдает следующий отчет...Отключайте суммовой учет по срокам годности. Подробности обсуждались много раз, почитайте ветку, и можете посмотреть в выложенных решениях.
Насколько это правильно, ведь постоянно будет копиться суммовой остаток по партиям?
(https://cdn1.savepice.ru/uploads/2017/10/6/fd7d9db1d284cbd1864f1d73e2c44820-full.jpg)
Как я понимаю, или проверкой себя 1С не сильно утруждают, хотя использование на экзамене платформы 8.3.6 уже говорит об уровне этого балагана))))
Но вот вопрос остается открытым кто нибудь стесывал остатки с партий или они так и копятся у всех и потом собираются отчетами?
Суммой не суммовой, отчет будет обязан выбрать все партии чтобы правильно посчитать среднее.
можно посмотреть базу? заинтриговали
Сдал спеца 09.06.17. Хочу поделиться своими решениями билетов. Спасибо всем участникам за обсуждение и выкладываемые решения. Это серьезная помощь в подготовке к экзамену.38 страница тема сверху
38 страница тема сверху
Вот вам мое решение. Посмотрите) может за одно и какие-нибудь ошибки заметите.
Добрый день всем. Мой вариант решения 1 билета. Буду благодарен за комментарииАх да забыл написать - пример так же неработоспособен, понатыкайте партий и спишите половину количества одной расходной.
1. Отчет не соответствует заданиюСоответствует. Если не нравиться внешний вид, то это не критично, я же не на экзамене.
2. Отрицательные остатки хранятся в базе, при проведении документа они в любом случае подлежат обходу.Тут не понятно. Какие остатки? (По какому ресурсу?) Там в принципе нельзя списать, если не хватает.
3. Ответьте на вопрос - сколько весит ссылка и сколько весит дата?Вам до граммов? ;D А если без шуток, то я так понимаю вы имели в виду то, что тип значения характеристики СрокГодности должен быть датой, а не ссылкой. У меня мысли были такие. Вообще крайне не рекомендуется использовать примитивные типы данных при описании характеристик для субконто. Максимальное количество ключей индекса SQL - 16 штук. То есть индексируются только первые 16, остальные нет. Индексы используются для поиска строки итогов при записи движений. Если выйти за пределы, то при записи будет получена не одна строка, а диапазон, а дальше его перебор.
4. Пример неработоспособен, выгрузка в приложении, в расходной накладной поставьте 35, 37, 47 и посмотрите с каких партий списывается.Но вы правы, там у меня ошибка. Я правильно упорядочивала по сроку годности, но по сути в запросе упорядочивание шло по наименованию, или даже не понятно как ;D В общем либо делать, как все (я просто видела решения с датой), либо что-то делать с этой ссылкой. Думаю, конкретно в этой задаче можно и дату запихнуть.
Многобукв...
По сылкам и числам не понял, откуда взялись три измерения и три субконто, если в вашем решении 2 и 0 соответственно.Я привела пример, чтобы было понятно. Почитайте литературу.
Учетная политика где?Этого в условии задачи нет.
"Списание себестоимости товаров должно быть организовано по партиям, в зависимости от метода списания (FIFO или LIFO),
Не индексируются ВТ минус балл.Очень жаль, что не поняли "монго буков", это нужно знать. Категорически нигде не делают субконто примитивным типом, в том числе и в типовых решениях. А если сделать субконто датой, то уже не проиндексировать. Ошибка будет выходить.
короче лан я понял что готового решения за все годы принятия экзамена нет, в принципе я не удивлен, было бы странно если бы было наоборот.Вам готового решения никто и не давал. Научитесь сами решать. Первую выгрузку выгружала только для того, чтобы показать запрос, который вы сами не могли написать. Ведь вопрос был поставлен: как работать с признаком суммовой.
...
Думаю больше нечего обсуждать. Приятно было пообщаться
...списание суммы в ноль по партии выходить не будет, только по количеству.
Насколько это правильно, ведь постоянно будет копиться суммовой остаток по партиям?
Никак не могу понять о чем вы толкуете.можно посмотреть базу? заинтриговалиСдал спеца 09.06.17. Хочу поделиться своими решениями билетов. Спасибо всем участникам за обсуждение и выкладываемые решения. Это серьезная помощь в подготовке к экзамену.38 страница тема сверху
Никак не могу понять о чем вы толкуете.« Ответ #626 : Октябрь 06, 2017, 10:53:49 pm »
У TUBORG14 отключен суммовой учет по срокам годности. Откуда вы берете суммовые остатки по ним?
Там скрин с его базы по его же отчету.Скрин я видел, не пойму вводом каких документов вы этого добились. Можете выложить базу, где у вас такой отчет получается?
Вам необходимо реализовать проверку для заданных условий.Там скрин с его базы по его же отчету.Скрин я видел, не пойму вводом каких документов вы этого добились. Можете выложить базу, где у вас такой отчет получается?
Вам необходимо реализовать проверку для заданных условий.
"Товар с одинаковым сроком годности может поступать разными документами и по разной цене."
"Возможна ситуация когда в одном документе один и тот же товар поступает с разными сроками годности (и по разной цене)."
Сделайте штук пять приходных с такими условиями.
Ну и тесты стандартного диапазона результатов - меньше минимума, минимум, больше минимума. Так как максимума тут нет этот тест можно пропустить.
Решил попробовать решить задачу ОУ по старой методике на одном регистре. Сразу возник вопрос как обеспечить сведение в ноль суммовых остатков по измерениям Склад + Партия. Получаю проблему как в задаче БУ из 6го билета. Получается правильным решением ОУ в этом билете будет именно по новой методике?Да,по "новой методике"
Хм ... не понимаю, почему может быть нельзя
alex1248, как Вы понимаете смысл Новой методики контроля остатков? Зачем она нужна и что дает?
В моем понимании, она работает быстрее старой (на уровне платформы), то есть позволяет сократить время проведения документа (это становится ощутимо на больших объемах данных).
В своем решении, в документе РН, Вы сначала делаете списание ОстаткиТоваров по НОВОЙ методике, а затем списываете Партии по СТАРОЙ. У меня же используется Старая методика. Запрос выполняется один, он получает остатки и по Складу и по Партиям и если их хватает, то формируются движения.
В моем понимании смысл НОВОЙ методки заключается в том, что сразу один раз без контроля остатков списал, затем проверил, что нет минусов и все! Поэтому она и применима не везде, а только в том случае, если для формирования движений не нужно предварительно получать данные.
А по Вашей схеме, и правда, "новую" методику можно использовать всегда.
С другой стороны, возможно, Вы правы, а я ошибаюсь, вот только рассудить нас некому ))
Хорошо, если бы к нам заглянул ВСЕВИДЯЩИЙ GROOVY, но вряд ли он найдет время копаться в наших "умных" решениях ))
alex1248, спасибо за ответ. Очень интересно узнать другую точку зрения. Ваше решение понятное, четко структурированное, легко читается, в общем респект.
Хм ... не понимаю, почему может быть нельзя
alex1248, как Вы понимаете смысл Новой методики контроля остатков? Зачем она нужна и что дает?
В моем понимании, она работает быстрее старой (на уровне платформы), то есть позволяет сократить время проведения документа (это становится ощутимо на больших объемах данных).
В своем решении, в документе РН, Вы сначала делаете списание ОстаткиТоваров по НОВОЙ методике, а затем списываете Партии по СТАРОЙ. У меня же используется Старая методика. Запрос выполняется один, он получает остатки и по Складу и по Партиям и если их хватает, то формируются движения.
В моем понимании смысл НОВОЙ методки заключается в том, что сразу один раз без контроля остатков списал, затем проверил, что нет минусов и все! Поэтому она и применима не везде, а только в том случае, если для формирования движений не нужно предварительно получать данные.
А по Вашей схеме, и правда, "новую" методику можно использовать всегда.
С другой стороны, возможно, Вы правы, а я ошибаюсь, вот только рассудить нас некому ))
Хорошо, если бы к нам заглянул ВСЕВИДЯЩИЙ GROOVY, но вряд ли он найдет время копаться в наших "умных" решениях ))
alex1248, спасибо за ответ. Очень интересно узнать другую точку зрения. Ваше решение понятное, четко структурированное, легко читается, в общем респект.
Всем привет, в данной задаче ОУ по моему мнению нужно организовывать новую методику проведения, поскольку идет сначала контроль остатков на складах и только потом списание по партиям, схема строится на 2-х РН ОстаткиНаСкладах и ОстаткиПоПартиям.
Всем привет, в данной задаче ОУ по моему мнению нужно организовывать новую методику проведения, поскольку идет сначала контроль остатков на складах и только потом списание по партиям, схема строится на 2-х РН ОстаткиНаСкладах и ОстаткиПоПартиям.1. В этой задаче нужно контролировать остатки по складу, а списывать по партиям. На одном регистре задачу не решить.
3. Т.к. между регистрами нет синхронизации, то проверять остатки нужно и при списании по партиям.
Немного ранее в этой ветке http://forum.chistov.pro/index.php?topic=3638.msg51656#msg51656.3. Т.к. между регистрами нет синхронизации, то проверять остатки нужно и при списании по партиям.
Я думаю в рамках этой задачи синхронизация есть, поскольку движения по обоим РН формируют только 2-а документа: "Расходная" и "Приходная". Асинхронного прихода и списания нет, так же в примере нет проверки остатков по 2-му РН. http://1c.chistov.pro/2013/07/blog-post_25.html
Немного ранее в этой ветке http://forum.chistov.pro/index.php?topic=3638.msg51656#msg51656.
Конечно, можете попробовать отстоять свою точку зрения.
а как на счет трудового стажа на оборотном РН Стаж, является ли это ошибкой?Два вопроса: Как? и Зачем?
Два вопроса: Как? и Зачем?Скорее всего это ошибка, вопрос в том сколько баллов снимут. Реализовал след. образом у спр "Физ. лица" завел числовой реквизит "Первоначальный стаж" и завел оборотный РН "Стаж" измерения: Сотрудник, ресурсы: Стаж (число). Добавил док. "ВводПервоначальногоСтажа" с реквизитом "Сотрудник" и далее во время начисления оклада записывал в РН раб. дни, ну и при расчете премии брал данные по стажу из РН "Стаж".
Покажите dt
Скорее всего это ошибка, вопрос в том сколько баллов снимут. Реализовал след. образом у спр "Физ. лица" завел числовой реквизит "Первоначальный стаж" и завел оборотный РН "Стаж" измерения: Сотрудник, ресурсы: Стаж (число). Добавил док. "ВводПервоначальногоСтажа" с реквизитом "Сотрудник" и далее во время начисления оклада записывал в РН раб. дни, ну и при расчете премии брал данные по стажу из РН "Стаж".Создать документ, регистр, писать в него движения, рассчитывать итоги только для того, чтобы не заводить в справочнике ФизическиеЛица реквизит ДатаПриема? Сказать, что это не оптимально - ничего не сказать.
Создать документ, регистр, писать в него движения, рассчитывать итоги только для того, чтобы не заводить в справочнике ФизическиеЛица реквизит ДатаПриема? Сказать, что это не оптимально - ничего не сказать.Да почитав эту ветку понял что наверно можно было обойтись 2-мя реквизитами в спр. Физ. лица это Первоначальный стаж (Число) и ДатаПриема (Дата)
Как можно произвести предварительный расчет без записи в РР периода действия по окладу и результата по немуНикак. Пишем, считаем, чистим.
ОУ: все хорошо, но ты в параметрах выбора ТЧ уже отсекаешь услуги, движения можно и конструктором сделать для скорости,но и так можно, просто дольше.
ОУ: в запросе для партий в итогах лишнее поле - СУММА(СуммаОстаток)
то же и в БУ: МАКСИМУМ(СуммаПродажи)
к этому могут придраться, лучше не получать то, что потом не используешь.
В отчете по БУ используешь один параметр МассивСубконто для двух таблиц, для таблицы Себестоимость нужен параметр субконто с одним значением: ПВХ Номенклатура, т.к. себестоимость без учета сроков годности. Тоже и в док. РасходнаяНакладная.
В общем модуле ОбращениеКДанным:Движения.ДополнительныеНачисления.Записать();
пропущен параметр только запись.
И еще в модуле формы документа "НачислениеЗарплаты" в процедуре РассчитатьНаСервере ты перед расчетом полностью заполняешь РР, не знаю обращают ли на это внимание, так то ты оклад и результат потом получаешь в общем модуле и получается, что ты просто так заполняешь реквизиты, которые потом рассчитаешь и все равно заменишь.
а так вроде все хорошо, смотрел только код.
ОУ. для РН ОстаткиНоменклатуры - используешь новую методику проведения - здесь управляемая блокировка не нужна.
БУ. ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Субконто1", "Номенклатура") - вместо "Субконто1" следует явно описать субконто: ПланыВидовХарактеристик.ВидыСубконто.Номенклатура (пользователь может менять порядок субконто и блокировка не будет работать).
ПредставлениеНоменклатуры в итогах можно не использовать, будет работать и так.
д.Операции: можно еще добавить установку активности записей при пометке удаления.
БП из первого билета должен выглядеть вроде так, но я не пойму где ошибка - пользователю не отображается его текущая невыполненная задача, как и его задачи в целом. Помогите, пожалуйста.Выходит, что в решениях по БП реализована адресация только по исполнителю? Достаточно ли реализации такого функционала для зачета задачи по БП?
UPD. Пошарил по форуму, понял ошибку, фактически получается, что на каждого пользователя должно быть по 2, а иногда и больше записей в РС.
Цитата: ""Если в задании присутствуют строки указывающие например на выполнение пункта всем подразделением без должности, а так же по должности без подразделения, то в РС адресация должны быть записи "Петров / ОтделЗакупок / ", "Петров / / Кладовщик", такая вот особенность системы. ""
В чем я ошибаюсь , можете посдказать.В условии ничего не сказано о том, что бух. учет должен вестись параллельно и независимо по нескольким организациям, поэтому измерение не нужно, как в билете 4. В общем случае для добавления измерения в РБ на то нужны веские причины, т.е. этот разрез должен быть актуален для большинства (если не для всех) счетов.
Опять таки по памяти, во всех билетах кроме 4го измерения Организация не нужно заводить.В чем я ошибаюсь , можете посдказать.В условии ничего не сказано о том, что бух. учет должен вестись параллельно и независимо по нескольким организациям, поэтому измерение не нужно, как в билете 4. В общем случае для добавления измерения в РБ на то нужны веские причины, т.е. этот разрез должен быть актуален для большинства (если не для всех) счетов.
Clition ты когда экзамен сдаешь?)Жду результаты.
Сделал Билет 1 с учетом дополнений. Просьба покритиковать
Подскажите, плиз, обязательно ли в Бизнес-процессах устанавливать Параметры сеанса, назначать роли? Смотрю на задачу в Билете 1 - там и без ролей нормально. В описание ошибок по БП тоже не вижу возможной ошибки...."Не реализована или работает неправильно форма списка невыполненных задач текущего пользователя системы -1 балл" - из списка наиболее часто встречающихся ошибок
Подскажите, плиз, обязательно ли в Бизнес-процессах устанавливать Параметры сеанса, назначать роли? Смотрю на задачу в Билете 1 - там и без ролей нормально. В описание ошибок по БП тоже не вижу возможной ошибки...."Не реализована или работает неправильно форма списка невыполненных задач текущего пользователя системы -1 балл" - из списка наиболее часто встречающихся ошибок
Спасибо, значит как я понимаю у остальных все пашет как должно....
Коллеги, а обязательно ли использовать "Новую" методику при проверке на минусовые остатки? В этом билете она, конечно, "просится", но мне ближе и роднее "старый" метод))Конечно, можно использовать не оптимальную методику, если ради этого вы готовы пожертвовать снятым баллом за соответствующую ошибку. :)
Задала вопрос своему директору (я работаю во франче, директор иногда даже принимает экзамены):Коллеги, а обязательно ли использовать "Новую" методику при проверке на минусовые остатки? В этом билете она, конечно, "просится", но мне ближе и роднее "старый" метод))Конечно, можно использовать не оптимальную методику, если ради этого вы готовы пожертвовать снятым баллом за соответствующую ошибку. :)
Но если хотите сдать экзамен, то следует делать так, как считается методически правильным, а не так как вы привыкли.
Но решила задачу на одном регистре и по старой методике. ИМХО, но это получилось оптимальнее... ::)Я сдавал давно, могу где-то ошибиться (ляпнуть, не дочитав, не досмотрев), но вроде бы, эта задача не решается на одном регистре в принципе. :)
Вы абсолютно правы, я ошибалась (не проверила полностью результат - остатки на регистре). На одном регистре эта задача не решается. Приношу свои извинения :-[Но решила задачу на одном регистре и по старой методике. ИМХО, но это получилось оптимальнее... ::)Я сдавал давно, могу где-то ошибиться (ляпнуть, не дочитав, не досмотрев), но вроде бы, эта задача не решается на одном регистре в принципе. :)
При оперативном проведении по регистру остатков партий, почему то многие не очищают движения. Старые движения ведь должны попасть в запрос?Старые движения нужно чистить только для:
Не верно поняли. При получении остатков запросом, передавая момент времени, таблица остатков берет данные на дату, не включая ее, а вот если документ проводится оперативно, то момент времени всегда будет текущей датой. И соответственно больше чем дата движений, сделанная документом секундой раньше, в этом случае в таблицу остатков при чтении запросом, документ считает свои движения.При оперативном проведении по регистру остатков партий, почему то многие не очищают движения. Старые движения ведь должны попасть в запрос?Старые движения нужно чистить только для:
- перепроведения из обычной формы
- случая, когда движения вынесены на управляемую форму.
В остальных случаях при перепроведении набор записей пустой вначале. Чтобы старые движения не попали в запрос, делается Движения.Себестоимость.Записать();
перед запросом.
Универсально так:
Движения.Себестоимость.Записывать = Истина;
Движения.Себестоимость.БлокироватьДляИзменения = Истина;
Движения.Себестоимость.Очистить(); // это для перепроведения из обычной формы
Движения.Себестоимость.Записать();
Если Режим = РежимЗаписиДокумента.Оперативный Тогда
Движения.Себестоимость.Очистить();
Движения.Себестоимость.Записать()
КонецЕсли;
В ином случае я не вижу в этом смысла.
Смысл есть. Пример: сегодня 21.01.2018. Пользователь открыл документ от 15.01.2018, поменял дату на 16.01.2018 и (!не оперативно!) перепровел документ. Если движения не чистить, документ прочитает свои движения. Так что чистить движения по себестоимости нужно всегда, независимо от режима проведения.Не верно поняли. При получении остатков запросом, передавая момент времени, таблица остатков берет данные на дату, не включая ее, а вот если документ проводится оперативно, то момент времени всегда будет текущей датой. И соответственно больше чем дата движений, сделанная документом секундой раньше, в этом случае в таблицу остатков при чтении запросом, документ считает свои движения.При оперативном проведении по регистру остатков партий, почему то многие не очищают движения. Старые движения ведь должны попасть в запрос?Старые движения нужно чистить только для:
- перепроведения из обычной формы
- случая, когда движения вынесены на управляемую форму.
В остальных случаях при перепроведении набор записей пустой вначале. Чтобы старые движения не попали в запрос, делается Движения.Себестоимость.Записать();
перед запросом.
Универсально так:
Движения.Себестоимость.Записывать = Истина;
Движения.Себестоимость.БлокироватьДляИзменения = Истина;
Движения.Себестоимость.Очистить(); // это для перепроведения из обычной формы
Движения.Себестоимость.Записать();
В таком случае стоит писать такКод: [Выделить]Если Режим = РежимЗаписиДокумента.Оперативный Тогда
В ином случае я не вижу в этом смысла.
Движения.Себестоимость.Очистить();
Движения.Себестоимость.Записать()
КонецЕсли;
Прикрепляю свое решение 1-го билета: без расчета ЗП в форме и с расчетом ЗП в форме. Комментариям буду рад.Поставьте совместимость 8.3.3
Вот вариант в совм. 8.3.3ЦитироватьПрикрепляю свое решение 1-го билета: без расчета ЗП в форме и с расчетом ЗП в форме. Комментариям буду рад.Поставьте совместимость 8.3.3
Привет, начала готовиться к экзамену, гляньте ОУ+БУ кому не сложно)Привет. Вроде норм.. Есть небольшие комменты / вопросы.
Вот вариант в совм. 8.3.31. ОУ
Спасибо, что посмотрел!Привет, начала готовиться к экзамену, гляньте ОУ+БУ кому не сложно)Привет. Вроде норм.. Есть небольшие комменты / вопросы.
1. А зачем в модуле объекта #Если Сервер или ТолстыйКлиентОбычноеПриложение или ВнешнееСоединение Тогда ?
2. В расходной в середине обработки проведения
Если Отказ Тогда
Возврат;
КонецЕсли;
Вроде бы нежелательно использовать возврат внутри предопред. событий
3. Чистить и записывать себестоимость нужно в любом случае (см. мое объяснение выше), а не только когда оперативно.
4. Бухгалтерский: не индексируешь временные табл. по полям соединения, соединяться с можно сразу 2 левых соед-я, т.е. 2-й и 3-й пакет можно объединить
Вот вариант в совм. 8.3.31. ОУ
В приходной нет необходимости очищать движения. В приходной движения вообще можно конструктором формировать. Проверять номенклатуру на услугу надо в расходной по условию задачи. За запись "Движения.ОстаткиНоменклатуры.Очистить()" могут сделать замечание на экзамене. Эта строчка нужна для обычных форм.
В расходной при списании себестоимости зачем строка "Движения.Управленческий.БлокироватьДляИзменения = Истина"? При вычислении суммы списываемой себестоимости надо округлять. Без округления вычисленное выражение может иметь точность больше двух знаков после запятой, а в регистре точность=2.
В отчете Склад и Номенклатура в одной колонке идет. Ну это может и не критично.
2. БУ
За документ "Операция" могут снять баллы. Если пометить на удаление - проводки остаются активными.
3. БП
Не верно заполнен регистр адресации. То, что есть лишние записи - думаю не страшно. Только времени жалко на лишнюю работу. А вот то, что не правильно заполнен - снимут балл однозначно. При адресации "Все кладовщики" не надо указывать подразделение. Еще не увидел отображения не выполненных задач с отбором по исполнителю.
1.Ответ здесь: http://forum.chistov.pro/index.php?topic=2005.msg22307#msg22307
>В расходной при списании себестоимости зачем строка "Движения.Управленческий.БлокироватьДляИзменения = Истина"?
При вычислении суммы списываемой себестоимости надо округлять. Без округления вычисленное выражение может иметь точность больше двух знаков после запятой, а в регистре точность=2.В данном случае сомневаюсь, что обязательно надо округлять, ведь когда запишется в регистр, то автоматически округлится
В отчете Склад и Номенклатура в одной колонке идет.Исправил
2. БУИсправил. Хотя в примере из сборник вроде нет такого и я вроде где-то здесь на форуме читал, что не обязательно. Действительно могут снять баллы?
За документ "Операция" могут снять баллы. Если пометить на удаление - проводки остаются активными.
3. БПСогласен, что есть лишние записи, это я увлекся, заполнил, как в табличке в задаче. Однако записи с заполненным кладовщиком и не заполненным подразделением у меня есть, т.е. ошибки нет. Задачи по исполнителю на начальной странице.
Не верно заполнен регистр адресации. То, что есть лишние записи - думаю не страшно. Только времени жалко на лишнюю работу. А вот то, что не правильно заполнен - снимут балл однозначно. При адресации "Все кладовщики" не надо указывать подразделение. Еще не увидел отображения не выполненных задач с отбором по исполнителю.
Спасибо, что посмотрел!
Ответ здесь: http://forum.chistov.pro/index.php?topic=2005.msg22307#msg22307
В данном случае сомневаюсь, что обязательно надо округлять, ведь когда запишется в регистр, то автоматически округлится
Исправил. Хотя в примере из сборник вроде нет такого и я вроде где-то здесь на форуме читал, что не обязательно. Действительно могут снять баллы?
Согласен, что есть лишние записи, это я увлекся, заполнил, как в табличке в задаче. Однако записи с заполненным кладовщиком и не заполненным подразделением у меня есть, т.е. ошибки нет. Задачи по исполнителю на начальной странице.
Решение прикрепляю.
Посмотри и мое - будем в расчете ;)Что ж, я посмотрел, хорошее решение)
Что ж, я посмотрел, хорошее решение)Спасибо за замечания!
Не понятно, зачем в начале метода рассчитать очистка движений:Да, пожалуй лишнее это
2. Логично убрать Подразделение из измерений РС СведенияОСотрудниках (перенести в реквизиты), т.к. по условиям задачи Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается.Логично. Думаешь к такому могут прикопаться?
3. В документе НачислениеЗарплаты в методе Рассчитать() в запросе ты не упорядочиваешь по номеру строки, в результате порядок строк в наборе и в ТЧ может отличаться, а ты позиционируешься потом по номеру строки набора на строке ТЧ (в общем модуле Расчет).Так там же отбор по номеру строки идет. В выборке будут только нужные строки. Вопрос оптимальности?
4. Расчет.Расчитать() - не желательно здесь читать набор записей. Желательно передать его из документа. Потому что сейчас так: ты в документе получил набор, записал. В общем модуле ты считал набор, записал. Потом в документе ты чистишь набор и записываешь. Но чистишь и записываешь не ту версию, которая была записана в общем модуле, а ту, которая была записана в документе. Т.е. работаешь с неактуальным набором. Я точно не уверен, но вроде могут быть блокировки из-за попытки записать неактуальный набор.Суть понял. Да, набор в документе уже не актуальный. Надо будет подумать...
4. БП: Удобнее в форме бизнес-процесса сделать еще кнопку для обновления карты.Удобно, конечно. Тут вопрос на что потратишь больше времени. В одном случае на тестирование, в другом - на реализацию кнопки. Я решил не делать кнопку.
5. В приходной, насколько я понял, есть возможность оприходовать услугиУслуги учитываю хитро. По условию задачи услуг в поступлении быть не должно. Я добавил флаг "ЭтоУслуга" в ТЧ расходной. Для услуг надо включать этот флаг. Это не красиво, конечно. Наши сдавали в конце прошлого года - за такую реализацию замечаний не делали.
Прорешала 1 билет! Застряла с БП( Не забывайте настраивать связку измерений РС Регистр адрессации и реквизитов Задачи Исполнителя!
Прикладываю свою базу, прошу критики)
Движения.ОсновныеНачисления.Очистить();
Для чего очищаете? :)#Если Сервер Или ТолстыйКлиентОбычноеПриложение или ВнешнееСоединение Тогда
?Движения.ОстаткиНоменклатуры.Очистить();
лишняя. Если Отказ Тогда
Продолжить;
КонецЕсли;
стоит вынести за "КонецЕсли" т.к. если хотя бы одного товара не хватает - документ не должен делать проводок.ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Субконто1", "Номенклатура");
правильнее писать:ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");
4. БП1. СПР. в ПВР для премии не указан базовый вид расчета и ведущий. Ведущий, может не обязательно указывать, т.к. перерасчет реализовывать не требуется. Я указываю. В РР подразделение можно не добавлять, ИМХО. В документе начисления ЗП есть смысл проверять документ на запись. Документа может не существовать на момент расчета либо данные в нем могут быть не актуальными.1. СПР - базовый "оклад" у меня указан.. Ведущий не указывала. Да, согласна, стоит проверить документ на запись. И второй набор записей не обязательно записывать, соглашусь, так же как и с тем, что движения нет смысла очищать)
По поводу очистки движений вопрос:Код: [Выделить]Движения.ОсновныеНачисления.Очистить();
Для чего очищаете? :)
Почитайте замечания к моему билету. У Вас похожее решение.
В общем модуле в процедуре расчета нет смысла записывать второй набор записей - он все равно потом очищается.
Серьезный подход к реализации отчета...
2. ОУ.
А для чего пишите в приходной накладной код:Код: [Выделить]#Если Сервер Или ТолстыйКлиентОбычноеПриложение или ВнешнееСоединение Тогда
?
В расходной строка:Код: [Выделить]Движения.ОстаткиНоменклатуры.Очистить();
лишняя.
При списании партий конструкцию:Код: [Выделить]Если Отказ Тогда
стоит вынести за "КонецЕсли" т.к. если хотя бы одного товара не хватает - документ не должен делать проводок.
Продолжить;
КонецЕсли;
Отчет: склад и номенклатура в одной колонке выводится.
3. БУ.
Для блокировки данные вместо строки:Код: [Выделить]ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Субконто1", "Номенклатура");
правильнее писать:Код: [Выделить]ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");
4. БП
Интересно, на экзамене прокатывает такой лаконичный вариант заполнения регистра адресации?
Не обязательно делать 2 формы. Можно сделать одну с отбором по исполнителю. Только не делать ее основной. Эту форму выводим на начальной странице. У задачи при открытии будет формироваться форма без отбора по исполнителю автоматически.
Если Отказ Тогда
Продолжить;
КонецЕсли;
?1. СПР - базовый "оклад" у меня указан.. Ведущий не указывала.Еще раз проверил Вашу базу - у меня не установлен такой флаг. Ну да ладно
Не понимаю куда нужно вынести условиеДа, я не проверял остатки по партиям. Думаю, по условиям данной задачи не должно возникнуть ситуации, когда РН "Остатки" будут остатки а в партиях их не будет. Пришлите, пожалуйста, ссылку на обсуждение этого вопроса.Код: [Выделить]Если Отказ Тогда
?
Продолжить;
КонецЕсли;
Если я не ошибаюсь, вы не стали делать проверку на свободные остатки по партиям? В ветке читала, что вроде желательно это делать)
Если ТребуетсяСписать>ВыборкаПоИтогам.КоличествоОстаток Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не достаточно товара "+ВыборкаПоИтогам.НоменклатураПредставление+ " в количестве "+Строка(ТребуетсяСписать-ВыборкаПоИтогам.КоличествоОстаток),Отказ);
Если Отказ Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Будет правильнее писать: Если ТребуетсяСписать>ВыборкаПоИтогам.КоличествоОстаток Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не достаточно товара "+ВыборкаПоИтогам.НоменклатураПредставление+ " в количестве "+Строка(ТребуетсяСписать-ВыборкаПоИтогам.КоличествоОстаток),Отказ);
КонецЕсли;
Если Отказ Тогда
Продолжить;
КонецЕсли;
В этом случае если хотя бы одного товара не хватает - алгоритм не будет уже заполнять движения, а только выводить сообщения о нехватке
Думаю, да.
2. Логично убрать Подразделение из измерений РС СведенияОСотрудниках (перенести в реквизиты), т.к. по условиям задачи Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается.
Логично. Думаешь к такому могут прикопаться?
3. В документе НачислениеЗарплаты в методе Рассчитать() в запросе ты не упорядочиваешь по номеру строки, в результате порядок строк в наборе и в ТЧ может отличаться, а ты позиционируешься потом по номеру строки набора на строке ТЧ (в общем модуле Расчет).Попробую уточнить на примере:
Так там же отбор по номеру строки идет. В выборке будут только нужные строки. Вопрос оптимальности?
Согласен, что есть лишние записи, это я увлекся, заполнил, как в табличке в задаче. Однако записи с заполненным кладовщиком и не заполненным подразделением у меня есть, т.е. ошибки нет. Задачи по исполнителю на начальной странице.Я разобрался. Твое замечание верное, спасибо. Для кладовщиков адресация групповая, без указания подразделения. В этом случае задачи создаются всем кладовщикам, даже если в регистре адресации подразделение для них заполнено. Это я проверял в режиме Предприятие. Но более правильно в этой задаче, конечно же, сделать записи по кладовщикам без указания подразделения. Исправил.
Решение прикрепляю.
В решении, которое я смотрел подразделения заполнены у всех кроме двух бухгалтеров.
В общем модуле расчета ЗП ты находишь строку №1 регистра и пишешь в нее Результат. Потом находишь строку № 1 в ТЧ и пишешь в нее результат. Тогда результат Петрова будет записан Иванову.Понял. Спасибо!
Цитировать4. Не знаю, наверное на экзамене нужно заполнить регистр адрессации полностью, как в билете написано. С формой согласна, можно создать только одну по исполнителю.
Забить таблицу полностью - это ошибка. Надо внести только те записи, которые реально используются в БП. То есть минимальный набор. Информация дается избыточная.
Забить таблицу полностью - это ошибка. Надо внести только те записи, которые реально используются в БП. То есть минимальный набор. Информация дается избыточная.Информация избыточная, но если в БП идет адресация "все кладовщики" и в описании задачи их 4(к примеру) - думаю нужно добавлять все 4 в регистр
Проверять номенклатуру на услугу надо в расходной по условию задачи - можете пжлст привести фразу из которой надо сделать этот вывод.Вот вариант в совм. 8.3.31. ОУ
В приходной нет необходимости очищать движения. В приходной движения вообще можно конструктором формировать. Проверять номенклатуру на услугу надо в расходной по условию задачи. За запись "Движения.ОстаткиНоменклатуры.Очистить()" могут сделать замечание на экзамене. Эта строчка нужна для обычных форм.
В расходной при списании себестоимости зачем строка "Движения.Управленческий.БлокироватьДляИзменения = Истина"? При вычислении суммы списываемой себестоимости надо округлять. Без округления вычисленное выражение может иметь точность больше двух знаков после запятой, а в регистре точность=2.
В отчете Склад и Номенклатура в одной колонке идет. Ну это может и не критично.
2. БУ
За документ "Операция" могут снять баллы. Если пометить на удаление - проводки остаются активными.
3. БП
Не верно заполнен регистр адресации. То, что есть лишние записи - думаю не страшно. Только времени жалко на лишнюю работу. А вот то, что не правильно заполнен - снимут балл однозначно. При адресации "Все кладовщики" не надо указывать подразделение. Еще не увидел отображения не выполненных задач с отбором по исполнителю.
ОУЯ находил решения где момент времени берется запросом из документа. Как по вашему будет правильнее?
"МоментОстатков = ?(Режим = РежимПроведенияДокумента.Оперативный, Неопределено,
Новый Граница(МоментВремени(), ВидГраницы.Включая));"
ОУНадо ли это проверять? Ведь если мы списали товар выше и его хватило даже с учетом склада то по партиям его уж точно должно хватить
ВыборкаНоменклатура.Количество > ВыборкаНоменклатура.КоличествоСебестоимость
Проверять номенклатуру на услугу надо в расходной по условию задачи - можете пжлст привести фразу из которой надо сделать этот вывод.В условии задачи фраза: "Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части". Про получение услуг в условии не говорится...
Похоже проверять остаток нужно и по регистру себестоимости...Держи. Кстати обрати внимание на то, что остатки надо проверять и по регистру ОстаткиНоменклатуры и по СебестоимостьНоменклатуры. Аргументы типа:Сдал спеца 09.06.17. Хочу поделиться своими решениями билетов. Спасибо всем участникам за обсуждение и выкладываемые решения. Это серьезная помощь в подготовке к экзамену.Выложи cf-ник пожалуйста а то Платформы 8.3.10 нет сейчас у меня. Заранее Спасибо.
- остатки проверяются на регистре ОстаткиНоменклатуры, а на СебестоимостьНоменклатуры проверка будет лишней
- если остатки поверил по конкретному складу (ОстаткиНоменклатуры), а уж по всем складам (СебестоимостьНоменклатуры ) товара конечно хватит
и т.д. не взлетают. Белоусов стоял на своем: мол в 1С нет механизма синхронизации данных в двух регистрах, поэтому остатки надо проверять везде (типа это методологически правильно :)))) ).
P.S. Режим совместимости 8.3.6
Вопрос по БУ:На экзамене, в виде исключения, разрешено в данной ситуации использовать в качестве субконто данные примитивного типа, без создания справочника.
Срок годности хранится в справочнике. Вроде это правильно - в учебниках не советуют в видах субконто использовать простые типы данных. Но выглядит это так себе, как по моему - представьте насколько "удобно" будет выбирать нужный срок годности если там записи будут по каждому дню в течении 5 ти лет?
Сдавал вчера, 09.02.18, попался этот билет. Сдал на 3.Спасибо за ценную информацию! Не понял только зачем в отчете по БУ ПрибылиУбытки? Там же остатки нужно выводить. Но смысл ясен
Допустил несколько ошибок:
1) в задаче по БУ в регистре бухгалтерии сначала забыл снять галку "Балансовый" у ресурса "Количество", связанного с признаком учета "Количественный". Потом (до проверки преподом) обнаружил эту ошибку и исправил в регистре бухгатерии. Но в документе "Операция"" проверить забыл, а там осталась колонка "Количество" (без ДТ и КТ). Это грубая ошибка. Если ресурс связан с признаком учета, он не должен быть балансовым.
2) в задаче по БУ в отчете собрал обороты по счету ПрибылиУбытки без отбора по кор. счету. Надо было обязательно ставить отбор по обоим счетам. Я аргументировал тем, что в задаче других проводок на ПрибылиУбытки не предполагается, но препод возразил, что есть документ "Операция", который в принципе способен создать ЛЮБЫЕ проводки. Поэтому нужен отбор по двум счетам.
3) в задаче по периодическим расчетам в регистре расчета "Основные начисления" у меня были измерения "Сотрудник" и "Подразделение". Я понимал, что совместительства в задаче нет, но имел в виду, что сотрудник может переходить из подразделения в подразделение. В этом случае надо было делать не измерение, а реквизит.
Спасибо за ценную информацию! Не понял только зачем в отчете по БУ ПрибылиУбытки? Там же остатки нужно выводить. Но смысл ясенТолько сейчас сверил первый билет из комплекта с тем первым, что попался на экзамене. Оказалось, совпадает только номер билета и задача на ОУ)
Выкладываю свой вариант первого билета с доп. условием. Буду благодарен за критику.Почему вы так усложнили запрос с получением среза последних ставки по сотруднику?
Для того, чтобы при вводе оклада с 10.01 по 31.01 значение ставки было получено на 10.01 а не на 01.01Выкладываю свой вариант первого билета с доп. условием. Буду благодарен за критику.Почему вы так усложнили запрос с получением среза последних ставки по сотруднику?
Расчетный период во всех задачах СПР - месяц.Для того, чтобы при вводе оклада с 10.01 по 31.01 значение ставки было получено на 10.01 а не на 01.01Выкладываю свой вариант первого билета с доп. условием. Буду благодарен за критику.Почему вы так усложнили запрос с получением среза последних ставки по сотруднику?
Начисление зарплаты сотрудникам предприятия осуществляется ежемесячно
Расчетный период во всех задачах СПР - месяц.Меня смутила фраза "например, можно указать начисление оклада с 10.01 по 31.01". Считаете, я перестарался?
Насколько я понял, Расчетный период в задаче месяц, как написали выше, а второй комментарий указывает на то, что по одному документу не могут быть начисления за два различных месяца.Расчетный период во всех задачах СПР - месяц.Меня смутила фраза "например, можно указать начисление оклада с 10.01 по 31.01". Считаете, я перестарался?
Еще в билете №2 в задаче СПР есть фраза: "Расчет должен проводиться исходя из действующего на рассчитываемую дату начального значения оклада. Например, если начальное значение оклада изменилось 10 августа, то до 10 августа при расчете берется старое значение, а начиная с 10 августа – новое.". В этом случае простым запросом точно не отделаться ???
Расчетный период во всех задачах СПР - месяц.Меня смутила фраза "например, можно указать начисление оклада с 10.01 по 31.01". Считаете, я перестарался?
Да, в большинстве задач оклады/тарифы берутся срезом на 1-е число месяца.Спасибо! Пересмотрю свой подход к решению :)
Да, в большинстве задач оклады/тарифы берутся срезом на 1-е число месяца.Спасибо! Пересмотрю свой подход к решению :)
?(Выборка.Норма = 0, 0, Выборка.Оклад*Выборка.Факт/Выборка.Норма)в вашем случае норма не присоединилась, вы факт не используете.
Мне нравятся ваши решения, но еще хотел указать на избыточность проверок на NULL,Спасибо! Не думал, что за такое могут снять балл.
Операция считается и так тяжелой, а вы указываете ее на всех ресурсах при левом соединении. Товарищу при сдаче за это снизили бал.
Билет 1, сдавала 22.02.2018
Оценка 4.
Ошибки:
В регистр остатков номенклатуры запись идет два раза (Движения.ИмяРегистра.Записать() не сбрасывает флаг Записывать = Истина)
из справки выдержкаВ общем модуле Расчеты второй параметр метода Записать для всех наборов расчетных регистров д.б. Истина. Как бы такая запись менее затратна для системы, т.е. запись происходит "проще". Ты же сам приводишь цитату "ввод записей перерасчета". А что такое перерасчет - записи, которые создаются, когда есть ведущие виды расчета и вытесняющие. Те виды расчета, которые в базе, как правило, указываются ведущими. Таким образом, 2-ой параметр метода Записать актуален не только для регистров с периодом действия, но и для регистров с базой, да и вообще для любых регистров расчета, запись которых происходит в общем модуле Расчеты.
По умолчанию при записи набора производится не только собственно запись, но и пересчет периода действия (для регистров расчета с поддержкой периода действия) и ввод записей перерасчета (если необходимо).
В выгрузке период действия для РР Дополнительные начисления не используется.
Получается не требуется в данном случае указывать второй параметр? ???
Прошу оценить мой вариант
Кому не трудно проверьте пожалуйста 1 билет (без доп условия и бизнес процесса)Вы бы режим совместимости поставили 8.3.3, а то не очень хочется последний релиз платформы устанавливать.
Кому не трудно проверьте пожалуйста 1 билет (без доп условия и бизнес процесса)Вы бы режим совместимости поставили 8.3.3, а то не очень хочется последний релиз платформы устанавливать.
Да и вообще лучше делать на учебной платформе, или на 8.3.9 (дистанционно вроде этот), а то будете на экзамене терять время на глюках платформы, которые у вас при подготовке на 8.3.11 не встречались.
ДаКому не трудно проверьте пожалуйста 1 билет (без доп условия и бизнес процесса)Вы бы режим совместимости поставили 8.3.3, а то не очень хочется последний релиз платформы устанавливать.
Да и вообще лучше делать на учебной платформе, или на 8.3.9 (дистанционно вроде этот), а то будете на экзамене терять время на глюках платформы, которые у вас при подготовке на 8.3.11 не встречались.
Вы имеете ввиду режим совместимости у свойства самой конфигурации поменять?
Режим совместимости 8.3.3Кому не трудно проверьте пожалуйста 1 билет (без доп условия и бизнес процесса)Вы бы режим совместимости поставили 8.3.3, а то не очень хочется последний релиз платформы устанавливать.
Да и вообще лучше делать на учебной платформе, или на 8.3.9 (дистанционно вроде этот), а то будете на экзамене терять время на глюках платформы, которые у вас при подготовке на 8.3.11 не встречались.
Кому не трудно проверьте пожалуйста 1 билет (без доп условия и бизнес процесса)- в основном по мелочи: во всех отчетах заголовков нет; по ОУ не увидел сообщение с описанием ошибки при контроле остатков;
Не думаю что отсутствие заголовков считается ошибкой , хотя задать их не так уж и долго.Кому не трудно проверьте пожалуйста 1 билет (без доп условия и бизнес процесса)- в основном по мелочи: во всех отчетах заголовков нет; по ОУ не увидел сообщение с описанием ошибки при контроле остатков;
- в ПР: условие задачи "... В одном документе могут быть данные за разные расчетные периоды.", т.е. использовать "срез последних" для получения значения оклада в этом случае будет не совсем корректно.
...Ну тут не все примеры одинаково полезны )) Лучше перепроверьтесь, как ближайший пример гляньте у пользователя outcast (чуть выше). Получения оклада зависит от условия задачи, в этой допускается указание в ТЧ разных периодов расчета, т.е. можно ввести одну строку за январь, вторую за февраль, третью за март и т.д., и брать для каждой один и тот же оклад через срез последних (с учетом того, что для каждого месяца он может отличаться) наверно все таки не правильно.
-Если не ошибаюсь, по СПР, в примерах, скаченных из этого форума, оклад берется срезом последних на начало месяца....
Спасибо за критикУ )))
Вот что нашел на этом форуме на ветке по 5 билету:Кому не трудно проверьте пожалуйста 1 билет (без доп условия и бизнес процесса)- в основном по мелочи: во всех отчетах заголовков нет; по ОУ не увидел сообщение с описанием ошибки при контроле остатков;
- в ПР: условие задачи "... В одном документе могут быть данные за разные расчетные периоды.", т.е. использовать "срез последних" для получения значения оклада в этом случае будет не совсем корректно.
Тут немного про другое, про период регистрации, который должен определяться датой документа, а не реквизитом из ТЧ. А вот период действия определяется реквизитами из ТЧ, и может быть задан как пример: строка №1 с 01.10 по 15.10 и строка №2 с 01.11 по 15.11.Вот что нашел на этом форуме на ветке по 5 билету:Кому не трудно проверьте пожалуйста 1 билет (без доп условия и бизнес процесса)- в основном по мелочи: во всех отчетах заголовков нет; по ОУ не увидел сообщение с описанием ошибки при контроле остатков;
- в ПР: условие задачи "... В одном документе могут быть данные за разные расчетные периоды.", т.е. использовать "срез последних" для получения значения оклада в этом случае будет не совсем корректно.
"Всем добрый день!
Сдавал 07.10 2-й билет, сдал на 4 с первого раза)))
Сдавал на 8.2
Принимал Гончаров Дмитрий.
В СПР есть фраза «В одном документе могут быть данные за разные расчетные
периоды». Спросил, означает ли это, что период регистрации должен быть в
табличной части? Ответ был, нет, это значит, что в строке табличной части период
действия может быть не за весь месяц, а к примеру с 01.10 по 15.10. "
Все, я понял, спасибо за разъяснения. Я все билеты наштамповал по этой схеме )))Тут немного про другое, про период регистрации, который должен определяться датой документа, а не реквизитом из ТЧ. А вот период действия определяется реквизитами из ТЧ, и может быть задан как пример: строка №1 с 01.10 по 15.10 и строка №2 с 01.11 по 15.11.
К примеру в 6 билете формулировка наоборот: "В одном документе могут быть данные только за текущий расчетный период."
Кстати у outcast ПериодРегистрации в ТЧ документа и определяется он не совсем датой документаДа, видимо не заметил, как вариант посмотрите еще решение на 48 странице.
В одном документе могут быть данные за разные расчетные периодыЭта фраза не актуальна по информации от недавно сдавших. Все сейчас делается в одном расчетном периоде. Согласно этому, можно брать срезом последних.
Эта фраза не актуальна по информации от недавно сдавших. Все сейчас делается в одном расчетном периоде. Согласно этому, можно брать срезом последних.Это очень хорошо если так, просто помнится, что в прошлогодних записях курсов УЦ, на этот момент обращали внимание.
Билет 1, сдавала 22.02.2018
Оценка 4.
Ошибки:
В регистр остатков номенклатуры запись идет два раза (Движения.ИмяРегистра.Записать() не сбрасывает флаг Записывать = Истина)
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ОстаткиНоменклатуры.Записать();
Билет 1, сдавала 22.02.2018
Оценка 4.
Ошибки:
В регистр остатков номенклатуры запись идет два раза (Движения.ИмяРегистра.Записать() не сбрасывает флаг Записывать = Истина)
Здравствуйте. У меня вопрос по решению этого пользователя(ОУ):
Если мы используем новую методику то запись и через Записавать= истина и Записать() считается на экзамене ошибкой?Код: [Выделить]
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ОстаткиНоменклатуры.Записать();
Т.е. нужно было использовать только (Движения.ОстаткиНоменклатуры.Записать()) ?
Спасибо.
Билет 1, сдавала 22.02.2018
Оценка 4.
Ошибки:
В регистр остатков номенклатуры запись идет два раза (Движения.ИмяРегистра.Записать() не сбрасывает флаг Записывать = Истина)
Здравствуйте. У меня вопрос по решению этого пользователя(ОУ):
Если мы используем новую методику то запись и через Записавать= истина и Записать() считается на экзамене ошибкой?Код: [Выделить]
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ОстаткиНоменклатуры.Записать();
Т.е. нужно было использовать только (Движения.ОстаткиНоменклатуры.Записать()) ?
Спасибо.
Тут видимо речь про то, что нужно было использовать запись коллекции Движения.Записать() (чтоб флаг сбросился), а не запись набора Движения.ОстаткиНоменклатуры.Записать()
// регистр Себестоимость Расход
Движения.Себестоимость.Записывать = Истина;
// Движения.Себестоимость.БлокироватьДляИзменения = Истина;
Движения.Себестоимость.Записать();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.Себестоимость");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();
По старой методике, сначала нужно сделать запись в регистр пустого набора (тем самым вы гарантируете, что при оперативном перепроведении, у вас текущие движения документа не повлияют на контроль остатков). Далее также согласно методике: установка блокировки, затем контроль остатков и формирование движений.
Есть еще вопрос по решению данного пользователя(ОУ проведение расходной накладной):
После того как произошла запись в регистр Остатки номенклатуры , ЗАЧЕМ ТО(?) делается запись в регистр себестоимости и далее устанавливается блокировка. Для чего записывать в регистр Себестоимости?Код: [Выделить]
// регистр Себестоимость Расход
Движения.Себестоимость.Записывать = Истина;
// Движения.Себестоимость.БлокироватьДляИзменения = Истина;
Движения.Себестоимость.Записать();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.Себестоимость");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();
Спасибо.
По старой методике, сначала нужно сделать запись в регистр пустого набора (тем самым вы гарантируете, что при оперативном перепроведении, у вас текущие движения документа не повлияют на контроль остатков). Далее также согласно методике: установка блокировки, затем контроль остатков и формирование движений.
Есть еще вопрос по решению данного пользователя(ОУ проведение расходной накладной):
После того как произошла запись в регистр Остатки номенклатуры , ЗАЧЕМ ТО(?) делается запись в регистр себестоимости и далее устанавливается блокировка. Для чего записывать в регистр Себестоимости?Код: [Выделить]
// регистр Себестоимость Расход
Движения.Себестоимость.Записывать = Истина;
// Движения.Себестоимость.БлокироватьДляИзменения = Истина;
Движения.Себестоимость.Записать();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.Себестоимость");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();
Спасибо.
Запрос.УстановитьПараметр("Граница", Новый Граница(МоментВремени(),ВидГраницы.Включая));
МоментКонтроляОстатков = ?(Режим = РежимПроведенияДокумента.Оперативный, Неопределено, Новый Граница(МоментВремени(), ВидГраницы.Включая)); Запрос.УстановитьПараметр("МоментВремени", МоментКонтроляОстатков);
Спасибо что отвечаете на мои вопросы.
Просто в решении данного пользователя нет очистки движений по регистру Себестоимости. Только запись(!). Меня это насторожило. Еще пара уточнений(что требуют на экзамене):
1)Очистка движений этого регистра(Себестоимость) должна происходить всегда или только при оперативном проведении?
2)При проверки остатков по РН "ОстакиНоменклатуры" использована конструкция :Насколько я знаю за первый вариант баллы не снижают ).Код: [Выделить]Запрос.УстановитьПараметр("Граница", Новый Граница(МоментВремени(),ВидГраницы.Включая));
Хотя многие пишут что нужно учитывать оперативно или нет проводиться документ :Код: [Выделить]МоментКонтроляОстатков = ?(Режим = РежимПроведенияДокумента.Оперативный, Неопределено, Новый Граница(МоментВремени(), ВидГраницы.Включая)); Запрос.УстановитьПараметр("МоментВремени", МоментКонтроляОстатков);
На экзамене предпочтительней использовать второй вариант?.
Политика = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментВремени()).Значение;
Если НЕ ЗначениеЗаполнено(Политика) тогда
Отказ = истина;
Сообшение = новый СообщениеПользователю;
Сообшение.Текст = "Не установлена учетная политика";
Сообшение.Сообщить();
Возврат;
КонецЕсли;
Метод = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментВремени()).МетодСписания;
Если Метод = Перечисления.УчетнаяПолитика.ЛИФО Тогда
ПорядокСортировки = " УБЫВ";
Иначе
ПорядокСортировки = "";
КонецЕсли;
В задаче по ОУ обязательно ли проверять на заполненность Политику учета?Код: [Выделить]
Политика = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментВремени()).Значение;
Если НЕ ЗначениеЗаполнено(Политика) тогда
Отказ = истина;
Сообшение = новый СообщениеПользователю;
Сообшение.Текст = "Не установлена учетная политика";
Сообшение.Сообщить();
Возврат;
КонецЕсли;
Я смотрю некоторые не проверяют.Код: [Выделить]
Метод = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментВремени()).МетодСписания;
Если Метод = Перечисления.УчетнаяПолитика.ЛИФО Тогда
ПорядокСортировки = " УБЫВ";
Иначе
ПорядокСортировки = "";
КонецЕсли;
Не снимут ли за это баллы?
Есть ли смысл в приходной накладной группировать по номенклатуре и фильтровать по виду номенклатуры (не услуга). Некоторые просто используют конструктор движений. Будет ли ошибка на экзамене или это т.н. "красивость" если хочешь получить высокую оценку?Если не сделаете ошибки не будет, так что можно не тратить время.
Всем привет ! вопрос по первому билету . можно ли его решить на одном рн ?
для чего здесь в решениях второй регистр себестоимость .
почему в оу я вижу в решениях проведение по новой . по регистру партии -новая .регистр себестоимость уже старая .
Читаем проверяем пишем старый вариант , предварит обсчит данныее и потом пишем ,можем сначала записать в регистр ,а потом проверить - по Новой Пишем Читаем Проверяем
если не читаем данные блоки не ставим
...При проведении расчет не делается, он делается на форме по кнопке рассчитать. Т.е. при проведении в регистры записывается уже готовый результат.
соответственно в документе начисление зарпл. добавлены реквизиты оклад и результат видимо нужны. для перерасчета .
...При проведении расчет не делается, он делается на форме по кнопке рассчитать. Т.е. при проведении в регистры записывается уже готовый результат.
соответственно в документе начисление зарпл. добавлены реквизиты оклад и результат видимо нужны. для перерасчета .
...При проведении расчет не делается, он делается на форме по кнопке рассчитать. Т.е. при проведении в регистры записывается уже готовый результат.
соответственно в документе начисление зарпл. добавлены реквизиты оклад и результат видимо нужны. для перерасчета .
Это недавно дополнение к условию сделали? . ранее в решениях этого нет ,да и в условии задачи .
Или же для удаленки кнопка, очно . при проведении?
Спасибо за информациюПри проведении расчет не делается, он делается на форме по кнопке рассчитать. Т.е. при проведении в регистры записывается уже готовый результат.
соответственно в документе начисление зарпл. добавлены реквизиты оклад и результат видимо нужны. для перерасчета .
Это недавно дополнение к условию сделали? . ранее в решениях этого нет ,да и в условии задачи .
Или же для удаленки кнопка, очно . при проведении?
Посмотрите 4 страницу (1 пост) там были все дополнения/изменения перечислены: https://forum.chistov.pro/index.php?topic=3953.45
ВЫБРАТЬ
ДополнительныеНачисления.Сотрудник,
ДополнительныеНачисления.Стаж,
ДополнительныеНачисления.Размер,
ДополнительныеНачисления.Результат
ИЗ
РегистрРасчета.ДополнительныеНачисления КАК ДополнительныеНачисления
ГДЕ
ДополнительныеНачисления.ПериодРегистрации >= НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ)
И ДополнительныеНачисления.ПериодРегистрации <= КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)
УПОРЯДОЧИТЬ ПО
ДополнительныеНачисления.ПериодРегистрации
На экзамене проверяют установку блокировок на регистр расчетов?Нет
Ребят, а я что-то не пойму, где сами билеты можно скачать? И что имеет смысл решать, задачник или вот эти билеты? Заранее спасибо!Ветку же специально закрепили с билетами, поищите там на двух последних страницах. Ветка с дополнениями в билетах тоже есть. А потом читайте ветку с результатами сдачи, чтоб иметь представление к чему готовиться в зависимости от способа сдачи.
...Периодичность в регистрах месяц, посмотрите что у вас в записях в этом регистре в периоде регистрации, может условие в отчете можно сделать проще ;)
Единственное есть вопрос по поводу этой фразы в условии "..Отчет должен быть построен только за определенный календарный месяц.."
...
...Периодичность в регистрах месяц, посмотрите что у вас в записях в этом регистре в периоде регистрации, может условие в отчете можно сделать проще ;)
Единственное есть вопрос по поводу этой фразы в условии "..Отчет должен быть построен только за определенный календарный месяц.."
...
В регистре в запросе - да, а как сделать в самом отчете в поле Период?Делайте через конкретную дату. Отображение параметров отключите. Вывод заголовка сделайте через макет, как пример: добавьте группировку Детальные записи, на закладке Другие настройки для нее ставите "Вариант использования группировки" = Дополнительная информация, потом назначьте ей имя и добавьте для нее макет группировки ("Добавить макет группировки"), затем область нарисуете и формат вывода даты определите.
там можно выбрать стандартный период - тогда это может быть не только за определенный месяц, а за несколько например.
или выбрать конкретную дату, но тогда и в отчете в самом будет написано например "Параметры: Месяц 03.08.2018", а не "Месяц Август 2018",
или если форматирование назначить "ММММ уууу" то в отчете выводится нормально только если выбрать "начало этого полугодия" и т.д. конкретную дату нельзя.
может какая то настройка Скд есть и я просто не догоняю?
В регистре в запросе - да, а как сделать в самом отчете в поле Период?Делайте через конкретную дату. Отображение параметров отключите. Вывод заголовка сделайте через макет, как пример: добавьте группировку Детальные записи, на закладке Другие настройки для нее ставите "Вариант использования группировки" = Дополнительная информация, потом назначьте ей имя и добавьте для нее макет группировки ("Добавить макет группировки"), затем область нарисуете и формат вывода даты определите.
там можно выбрать стандартный период - тогда это может быть не только за определенный месяц, а за несколько например.
или выбрать конкретную дату, но тогда и в отчете в самом будет написано например "Параметры: Месяц 03.08.2018", а не "Месяц Август 2018",
или если форматирование назначить "ММММ уууу" то в отчете выводится нормально только если выбрать "начало этого полугодия" и т.д. конкретную дату нельзя.
может какая то настройка Скд есть и я просто не догоняю?
Саму методику решения задачи посмотрите как у RA, она выше прикреплена.
В регистре в запросе - да, а как сделать в самом отчете в поле Период?Делайте через конкретную дату. Отображение параметров отключите. Вывод заголовка сделайте через макет, как пример: добавьте группировку Детальные записи, на закладке Другие настройки для нее ставите "Вариант использования группировки" = Дополнительная информация, потом назначьте ей имя и добавьте для нее макет группировки ("Добавить макет группировки"), затем область нарисуете и формат вывода даты определите.
там можно выбрать стандартный период - тогда это может быть не только за определенный месяц, а за несколько например.
Белоусов Павел . на своих курсах разжевывает .как делать заголовки через макет.
с каждым нем экзамен становиться наполненей
может какая то настройка Скд есть и я просто не догоняю?
Саму методику решения задачи посмотрите как у RA, она выше прикреплена.
спасибо большое
Ребят, а я что-то не пойму, где сами билеты можно скачать? И что имеет смысл решать, задачник или вот эти билеты? Заранее спасибо!
тут выкладывали ссылки .посмотри в ветках.
сами преподы говорят решай весь задачник. по слухам .только задачи из этих билетов на экзамене
поэтому если времени не жалко решай весь задачник. по 5 задач в день можно .если ты дома в отпуске.
Товарищи, прошу вашего мнения. Билет с дополнениямиБух.учет:
Билет 1, сдавал 13.08.2018 удаленно
Оценка 4.
Ошибки:
Вопрос № 2
При проведении РН не контроля остатков по второму регистру
Вопрос № 3
Вместо одной проводки по выручке формируются несколько
Вопрос № 4
Расчет на форме выполнен неверно
Первое замечание: решал стандартно через два РН ОстаткиНоменклатуры и СтоимостьНоменклатуры, проведение по новой методике - сначала записывал в РН, потом проверял остаток, далее списывал себестоимость, сочли ошибкой отсутствие проверки по регистру СтоимостьНоменклатуры.
Второе замечание: закинул проводку по выручке в цикл обхода запроса, оптимальнее обратится к табличной части СписокНоменклатуры.Итог("Сумма")
Третье замечание: по кнопке рассчитать у меня вызывался расчет записей в общем модуле, далее с помощью метода табчасти ОсновныеНачисления.Загрузить() выводил их на форму, где ошибка пока не разобрался.
Билет совпадал с актуальным. В БП правда есть условие что Пользователь видит только свои задачи, но должна быть возможность просмотра всех задач.
Сдавал 28.09 очно.
Оценка 4.
Задача БУ была из билета №1. Очередь отвечать до меня дошла в последнюю очередь. И имеющий уши - да слышит. Именно эта задача БУ была у всех, кто сдавал платформу в тот день. Увы, но моих коллег постигла повальная неудача, и всех на этой задаче. Причина у всех тоже была одна - не выключен суммовой признак у субконто "срок годности". Следствие - невозможность вывести в ноль счет "товары". Препод оценивал это по максимуму - в -3 балла. Такая вот печальная история. Обращайте внимание на этот, казалось бы, маленький нюанс , пожалуйста.
что то вы тут фантазируете
Добрый день!Расчетный период, период за который считается зп, обычно месяц, ну или то что вы поставите в регистре расчета в поле "Периодичность".
Как понимать фразу "Первоначальное значение оклада может изменяться не чаще, чем один раз в день, но берется на начало расчетного периода"
Что понимать под началом расчетного периода? ПериодДействияНачало? ПериодРегистрации?
Дополнительно:
Начисляем оклад за январь 2018г одной строкой ПериодДействияНачало = 01.01.2018 ПериодДействияКонец = 31.01.2018.
15.01.2018г. оклад у сотрудника поменялся.
Достаточно ли взять оклад на 01.01.2018? или необходимо учитывать изменение оклада от 15.01.2018г.?
Расчетный период, период за который считается зп, обычно месяц, ну или то что вы поставите в регистре расчета в поле "Периодичность".
Достаточно взять на начало месяца, так кстати и написано.
Если учитывать изменение оклада, вам об этом напишут в билете. Во втором билете как раз и есть неоднократное изменение оклада.
Начало 01.01.Расчетный период, период за который считается зп, обычно месяц, ну или то что вы поставите в регистре расчета в поле "Периодичность".
Достаточно взять на начало месяца, так кстати и написано.
Если учитывать изменение оклада, вам об этом напишут в билете. Во втором билете как раз и есть неоднократное изменение оклада.
В тексте задачи написано: "Считать, что все данные вводятся только в пределах одного месяца, например, можно указать начисление оклада с 10.01 по 31.01"
В данном случае начало расчетного периода это 10.01 или 01.01?
Расчетный период, период за который считается зп, обычно месяц, ну или то что вы поставите в регистре расчета в поле "Периодичность".
Достаточно взять на начало месяца, так кстати и написано.
Если учитывать изменение оклада, вам об этом напишут в билете. Во втором билете как раз и есть неоднократное изменение оклада.
В тексте задачи написано: "Считать, что все данные вводятся только в пределах одного месяца, например, можно указать начисление оклада с 10.01 по 31.01"
В данном случае начало расчетного периода это 10.01 или 01.01?
Доброго времени коллеги!
Прошу проверить мое решение первого билета. Не решил только задачу по БП. Прошу судить строго.
Прошу критики по первой задаче первого билета. Нужно ли учитывать Услуги в рамках первой задачи?
и попутно вопрос: для исключения влияния документа на регистры при оперативном перепроведении
используется запись пустых движений
Движения.ПартииТоваров.Записывать = Истина;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.ПартииТоваров.Записать();
КонецЕсли;
Для записи движений по регистру флаг "Записывать" для движения ставится в истину. а Движения.ИмяРегистра.Записать() его не сбрасывает при пустой записи?
Здравствуйте.
Думаю, здесь будет уместно. :)
Сдал экзамен, и после качественно скомпоновал все решения и опубликовал на Инфостарте.
https://expert.chistov.pro/public/956340/
Если кому-то понадобится, можно скачать БеЗплатно базы. (читайте текст, в конце ссылка)
Буду благодарен за "+".
Ещё доработал и опубликовал шпаргалки- на них ушло много времени. Думаю, будут очень полезны при подготовке.
Пишите комментарии, если возникнут вопросы :)
Сейчас есть условие "В одном документе могу быть данные за разные расчетные периоды"?
Здравствуйте.
Думаю, здесь будет уместно. :)
Сдал экзамен, и после качественно скомпоновал все решения и опубликовал на Инфостарте.
https://expert.chistov.pro/public/956340/
Если кому-то понадобится, можно скачать БеЗплатно базы. (читайте текст, в конце ссылка)
Буду благодарен за "+".
Ещё доработал и опубликовал шпаргалки- на них ушло много времени. Думаю, будут очень полезны при подготовке.
Пишите комментарии, если возникнут вопросы :)
P.S. В Ссылке на архивы с выгрузками вместо второго билета попал первый.
P.S. В Ссылке на архивы с выгрузками вместо второго билета попал первый.
Да, случайно выгрузил не в тот файл при прошлой правке.
Сейчас по ссылке исправил..
Чуть позже будут правки по 5 билету в части расчётной задачи и шпоры на 4-6 билеты.
До конца года хочу все шпоры доделать + по УФ и БП.
Друзья, я решил задачу ОУ одним регистром накопления : измерения номенклатура партия , ресурсы : количество, стоимость. Такое допускается ? Я решил что регистр себестоимость не нужен так как данный отчёт не требуется, по продажамЕсли остатки выходят в 0, то допускается.
Друзья, я решил задачу ОУ одним регистром накопления : измерения номенклатура партия , ресурсы : количество, стоимость. Такое допускается ? Я решил что регистр себестоимость не нужен так как данный отчёт не требуется, по продажам
Друзья, я решил задачу ОУ одним регистром накопления : измерения номенклатура партия , ресурсы : количество, стоимость. Такое допускается ? Я решил что регистр себестоимость не нужен так как данный отчёт не требуется, по продажам
Зависит от условий задачи. Если нужно остатки контролировать по партиям, а себестоимость - только по номенклатуре - тогда намного проще два регистра сделать.
Регистр Продажи - это классика. По нему проще отчеты сделать (намного меньше возможности накосячить в СКД с одним регистром), можно всё, что есть в отчете - запихнуть в измерения и ресурсы. Если на экзамене будет вопрос - зачем еще регистр, то ответ такой: по оборотному регистру обороты для отчета получаются намного быстрей.
Друзья, я решил задачу ОУ одним регистром накопления : измерения номенклатура партия , ресурсы : количество, стоимость. Такое допускается ? Я решил что регистр себестоимость не нужен так как данный отчёт не требуется, по продажам
Зависит от условий задачи. Если нужно остатки контролировать по партиям, а себестоимость - только по номенклатуре - тогда намного проще два регистра сделать.
Регистр Продажи - это классика. По нему проще отчеты сделать (намного меньше возможности накосячить в СКД с одним регистром), можно всё, что есть в отчете - запихнуть в измерения и ресурсы. Если на экзамене будет вопрос - зачем еще регистр, то ответ такой: по оборотному регистру обороты для отчета получаются намного быстрей.
Спасибо,ну вот я данную задачу имею ввиду, в ней отчет лишь остатки вывести нужно
Друзья, я решил задачу ОУ одним регистром накопления : измерения номенклатура партия , ресурсы : количество, стоимость. Такое допускается ? Я решил что регистр себестоимость не нужен так как данный отчёт не требуется, по продажамНе взлетит. Два регистра, один с остатками, другой с себестоимостью. 500 тыщ решений в ветке, как надо делать))
Зависит от условий задачи. Если нужно остатки контролировать по партиям, а себестоимость - только по номенклатуре - тогда намного проще два регистра сделать.
Регистр Продажи - это классика. По нему проще отчеты сделать (намного меньше возможности накосячить в СКД с одним регистром), можно всё, что есть в отчете - запихнуть в измерения и ресурсы. Если на экзамене будет вопрос - зачем еще регистр, то ответ такой: по оборотному регистру обороты для отчета получаются намного быстрей.
Спасибо,ну вот я данную задачу имею ввиду, в ней отчет лишь остатки вывести нужно
Не взлетит. Два регистра, один с остатками, другой с себестоимостью. 500 тыщ решений в ветке, как надо делать))
Спасибо,ну вот я данную задачу имею ввиду, в ней отчет лишь остатки вывести нужно
Посмотрел решение. Реализовал в твоей выгрузке пример из самого задания, когда товар поступает сначала на первый склад, потом на второй и списывается со второго. При FIFO должна списываться себестоимость по первой партии (которая поступила на первый склад), а у тебя она списывается по себестоимости второй партии. Получается у тебя или остатки в ноль выходят, но себестоимость неправильная, либо себестоимость будет правильная, но остатки не будут выходить в 0. При использовании регистра бухгалтерии в решении задач ОУ получаем "Построение учетной схемы не на регистрах накопления" = 3 балла, т.е. сразу не сдалНе взлетит. Два регистра, один с остатками, другой с себестоимостью. 500 тыщ решений в ветке, как надо делать))
Спасибо,ну вот я данную задачу имею ввиду, в ней отчет лишь остатки вывести нужно
Ок,а можешь обяснить плиз почему не взлетит?) вот моя выгрузка во вложении
Очень ждем! Сообщите как будет готово?
Доброго времени суток! Мое решение билета. Буду рад любой обратной связи.
Новый Граница(МоментВремени(), ВидГраницы.Включая));
второй параметр можно не указывать, не тратить время, он итак по умолчанию ВидГраницы.Включая
Доброго времени суток! Мое решение билета. Буду рад любой обратной связи.
Добрый день!
Мне понравились решения, в принципе всё неплохо.
Что бросилось в глаза:
1) Документ Операция - модуль объекта пустой. Заполнение периода из даты точно стоит сделать, да и бывало что на экзамене снижали бал из-за того, что нет обработки активности записей при установки пометки удаления. Я бы и то и то всё-таки реализовал.
2) Не очень хорошо, что Срок годности это дата, лучше было бы сделать всё-таки справочником из-за ограничения в количестве ключей индекса, хоть это и не ошибка, но думаю дополнительный бонус можно было бы заработать, храня срок годности в справочнике, не так много кода добавляется в такой реализации.
3) Мне не очень понравилось реализация запроса в бухгалтерском учете в расходной, где присоединяется одна таблица остатков, а затем в коде идет сравнение с Null для отсечения ненужных строк. На мой взгляд, более грамотно было бы присоединить пускай и две таблицы остатков, но в выборке были бы уже только нужные строки и никаких махинаций с Null делать бы не пришлось. Но ваше решение выдает правильный ответ, поэтому вполне имеет право на существование, думаю и принимающим будет не принципиально.
4) Не понял почему стаж вы везде превратили в стаж по месяцам, в таблице в задании в примере это года, да и вообще логично стаж измерять годами.
5) Для чего запоминать количество отработанных дней в реквизите Факт регистра расчета?
6) Расчет в документе НачислениеЗарплаты насколько я помню нужно выполнять в транзакции, аналогично тому как если бы это происходило при проведении документа.
7) По идее мы должны сначала сделать записи в регистры расчета, так называемые базовые (первичные) движения (из табличной части), а затем уже в общем модуле обращаться к таблицам получения базы, данных графика. Не вижу у Вас такой записи.
6) В конструкцииКод: [Выделить]Новый Граница(МоментВремени(), ВидГраницы.Включая));
второй параметр можно не указывать, не тратить время, он итак по умолчанию ВидГраницы.Включая
Учитывая, что экзамен принимает не только Гончаров, всё-таки документ Операция советую доводить до ума, дабы не возникло вопросов у других проверяющих.Доброго времени суток! Мое решение билета. Буду рад любой обратной связи.
1) Документ Операция - модуль объекта пустой. Заполнение периода из даты точно стоит сделать, да и бывало что на экзамене снижали бал из-за того, что нет обработки активности записей при установки пометки удаления. Я бы и то и то всё-таки реализовал.
Доброго! Спасибо за обратную связь! Пункты 1, 2, 4, 5, 6, 7 - сделаны по заветам Павла Белоусова. Видимо такое решение должно "прокатить" на экзамене. Хотя я согласен с вашими замечаниями на 100%. Кроме пункта 7 - движения записываются в процедуре модуля формы документа "Начисление зарплаты" при записи объекта (аналогично ручной операции).
Учитывая, что экзамен принимает не только Гончаров, всё-таки документ Операция советую доводить до ума, дабы не возникло вопросов у других проверяющих.Доброго времени суток! Мое решение билета. Буду рад любой обратной связи.
1) Документ Операция - модуль объекта пустой. Заполнение периода из даты точно стоит сделать, да и бывало что на экзамене снижали бал из-за того, что нет обработки активности записей при установки пометки удаления. Я бы и то и то всё-таки реализовал.
Доброго! Спасибо за обратную связь! Пункты 1, 2, 4, 5, 6, 7 - сделаны по заветам Павла Белоусова. Видимо такое решение должно "прокатить" на экзамене. Хотя я согласен с вашими замечаниями на 100%. Кроме пункта 7 - движения записываются в процедуре модуля формы документа "Начисление зарплаты" при записи объекта (аналогично ручной операции).
А вообще в целом, судя по крайней мере по первому билету, Вам пора на сдачу)
Прошу проверьте! Только ОУУчитывая, что экзамен принимает не только Гончаров, всё-таки документ Операция советую доводить до ума, дабы не возникло вопросов у других проверяющих.Доброго времени суток! Мое решение билета. Буду рад любой обратной связи.
1) Документ Операция - модуль объекта пустой. Заполнение периода из даты точно стоит сделать, да и бывало что на экзамене снижали бал из-за того, что нет обработки активности записей при установки пометки удаления. Я бы и то и то всё-таки реализовал.
Доброго! Спасибо за обратную связь! Пункты 1, 2, 4, 5, 6, 7 - сделаны по заветам Павла Белоусова. Видимо такое решение должно "прокатить" на экзамене. Хотя я согласен с вашими замечаниями на 100%. Кроме пункта 7 - движения записываются в процедуре модуля формы документа "Начисление зарплаты" при записи объекта (аналогично ручной операции).
А вообще в целом, судя по крайней мере по первому билету, Вам пора на сдачу)
Прошу проверьте! Только ОУ
1-3 и 5 - спасибо, поняла.Прошу проверьте! Только ОУ
1) Забудьте про эту конструкцию:
Период = ?(Режим = РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени());
Остатки всегда на МоментВремени() документа, если нужно включая момент времени, то используйте объект Граница. Одно из требований экзамена - получение остатков на момент времени документа, не нужно проверять оперативный, неоперативный режим. Просто в данном случае:
Период = МоментВремени();
2) Движения.ОстаткиНоменклатуры.Очистить();
Не нужно очищать набор записей, он всегда будет пуст при работе с управляемыми формами.
3) В каркасной конфигурации уже существует объект перечисление ТипНоменклатуры, я бы его всё-таки подвязывал бы с к справочнику Номенклатура и в коде делал проверку на значение Услуги через этот реквизит. Через булевский реквизит Услуга тоже, конечно, всё работает, но раз экзаменаторы хотят проверить наше умение работать с непустой конфигурацией, то мы и должны это продемонстрировать. Но и Ваше решение думаю не будет ошибочным на экзамене.
4) Почему у регистра Себестоимость не стоит флаг "Разрешить разделение итогов"?
5) В отчете неплохо бы не выводить значение параметра в заголовке, и заголовок вывести как в приведенном примере в задании. Но это уже лучше реализовывать когда останется время на экзамене.
А так в целом неплохо всё.
Проверьте, пожалуйста, бизнес процесс. Платформа для подготовки к экзамену накладывает ограничения на количество подключений. Не могу до конца процесс отладить. Все ли правильно?Из того что бросилось в глаза:
1)Спасибо, исправила.Проверьте, пожалуйста, бизнес процесс. Платформа для подготовки к экзамену накладывает ограничения на количество подключений. Не могу до конца процесс отладить. Все ли правильно?Из того что бросилось в глаза:
1) Как увидеть полный список задач? Вы создали форму задач текущего пользователя, установили её основной. Отобразить просто форму списка нельзя. Это -0.5 балла.
2) Зачем разделять заполнение реквизита КартаБП в событиях ПриСозданииНаСервере и ПриЧтенииНаСервере для новых, неновых бизнес-процессов. Почему просто не прописать установку реквизита КартаБП в процедуре ПриСозданииНаСервере без всяких проверок на пустую ссылку? Неплохо добавить еще установку реквизита КартаБП в событии ПослеЗаписиНаСервере, тогда при нажатии на Кнопку Старт в форме бизнес процесса Вы увидите сразу текущее состояние.
3) А если очистить у них подразделение в регистре адресации?1)Спасибо, исправила.Проверьте, пожалуйста, бизнес процесс. Платформа для подготовки к экзамену накладывает ограничения на количество подключений. Не могу до конца процесс отладить. Все ли правильно?Из того что бросилось в глаза:
1) Как увидеть полный список задач? Вы создали форму задач текущего пользователя, установили её основной. Отобразить просто форму списка нельзя. Это -0.5 балла.
2) Зачем разделять заполнение реквизита КартаБП в событиях ПриСозданииНаСервере и ПриЧтенииНаСервере для новых, неновых бизнес-процессов. Почему просто не прописать установку реквизита КартаБП в процедуре ПриСозданииНаСервере без всяких проверок на пустую ссылку? Неплохо добавить еще установку реквизита КартаБП в событии ПослеЗаписиНаСервере, тогда при нажатии на Кнопку Старт в форме бизнес процесса Вы увидите сразу текущее состояние.
2) Без проверки на пустую ссылку не отображается движение по бизнес-процессу, поэтому оставила.
3) Не могу найти ошибку в настройке: сверка расчетов не отображается в списке задач бухгалтеров Мишиной и Кротова.
3) А если очистить у них подразделение в регистре адресации?1)Спасибо, исправила.Проверьте, пожалуйста, бизнес процесс. Платформа для подготовки к экзамену накладывает ограничения на количество подключений. Не могу до конца процесс отладить. Все ли правильно?Из того что бросилось в глаза:
1) Как увидеть полный список задач? Вы создали форму задач текущего пользователя, установили её основной. Отобразить просто форму списка нельзя. Это -0.5 балла.
2) Зачем разделять заполнение реквизита КартаБП в событиях ПриСозданииНаСервере и ПриЧтенииНаСервере для новых, неновых бизнес-процессов. Почему просто не прописать установку реквизита КартаБП в процедуре ПриСозданииНаСервере без всяких проверок на пустую ссылку? Неплохо добавить еще установку реквизита КартаБП в событии ПослеЗаписиНаСервере, тогда при нажатии на Кнопку Старт в форме бизнес процесса Вы увидите сразу текущее состояние.
2) Без проверки на пустую ссылку не отображается движение по бизнес-процессу, поэтому оставила.
3) Не могу найти ошибку в настройке: сверка расчетов не отображается в списке задач бухгалтеров Мишиной и Кротова.
Указано, что задача для всех сотрудников конкретного подразделения - создаете записи в регистре с только заполненным подразделением и пустой должностью, задача для сотрудников любого подразделения конкретной должности - создаете записи с только заполненной должностью и пустым подразделением. Указано и то и то - заполняете оба поля в регистре.3) А если очистить у них подразделение в регистре адресации?1)Спасибо, исправила.Проверьте, пожалуйста, бизнес процесс. Платформа для подготовки к экзамену накладывает ограничения на количество подключений. Не могу до конца процесс отладить. Все ли правильно?Из того что бросилось в глаза:
1) Как увидеть полный список задач? Вы создали форму задач текущего пользователя, установили её основной. Отобразить просто форму списка нельзя. Это -0.5 балла.
2) Зачем разделять заполнение реквизита КартаБП в событиях ПриСозданииНаСервере и ПриЧтенииНаСервере для новых, неновых бизнес-процессов. Почему просто не прописать установку реквизита КартаБП в процедуре ПриСозданииНаСервере без всяких проверок на пустую ссылку? Неплохо добавить еще установку реквизита КартаБП в событии ПослеЗаписиНаСервере, тогда при нажатии на Кнопку Старт в форме бизнес процесса Вы увидите сразу текущее состояние.
2) Без проверки на пустую ссылку не отображается движение по бизнес-процессу, поэтому оставила.
3) Не могу найти ошибку в настройке: сверка расчетов не отображается в списке задач бухгалтеров Мишиной и Кротова.
Спасибо, помогло. Но странно.Ведь могут быть другие роли, требующие и подразделение?
Подскажите, я по поводу полей: количествоОстаток и СтоимостьОстаток. Нужно ли проверять на NULL стоимостьОстаток в запросе? я говорю к тому, что если мы проверили количествоОстаток на налл, то зачем проверять стоимость? т.к. если кол-во есть, значит есть и стоимость, и смысл проверять стоимость я думаю нет.Указано, что задача для всех сотрудников конкретного подразделения - создаете записи в регистре с только заполненным подразделением и пустой должностью, задача для сотрудников любого подразделения конкретной должности - создаете записи с только заполненной должностью и пустым подразделением. Указано и то и то - заполняете оба поля в регистре.3) А если очистить у них подразделение в регистре адресации?1)Спасибо, исправила.Проверьте, пожалуйста, бизнес процесс. Платформа для подготовки к экзамену накладывает ограничения на количество подключений. Не могу до конца процесс отладить. Все ли правильно?Из того что бросилось в глаза:
1) Как увидеть полный список задач? Вы создали форму задач текущего пользователя, установили её основной. Отобразить просто форму списка нельзя. Это -0.5 балла.
2) Зачем разделять заполнение реквизита КартаБП в событиях ПриСозданииНаСервере и ПриЧтенииНаСервере для новых, неновых бизнес-процессов. Почему просто не прописать установку реквизита КартаБП в процедуре ПриСозданииНаСервере без всяких проверок на пустую ссылку? Неплохо добавить еще установку реквизита КартаБП в событии ПослеЗаписиНаСервере, тогда при нажатии на Кнопку Старт в форме бизнес процесса Вы увидите сразу текущее состояние.
2) Без проверки на пустую ссылку не отображается движение по бизнес-процессу, поэтому оставила.
3) Не могу найти ошибку в настройке: сверка расчетов не отображается в списке задач бухгалтеров Мишиной и Кротова.
Спасибо, помогло. Но странно.Ведь могут быть другие роли, требующие и подразделение?
Подскажите, я по поводу полей: количествоОстаток и СтоимостьОстаток. Нужно ли проверять на NULL стоимостьОстаток в запросе? я говорю к тому, что если мы проверили количествоОстаток на налл, то зачем проверять стоимость? т.к. если кол-во есть, значит есть и стоимость, и смысл проверять стоимость я думаю нет.Указано, что задача для всех сотрудников конкретного подразделения - создаете записи в регистре с только заполненным подразделением и пустой должностью, задача для сотрудников любого подразделения конкретной должности - создаете записи с только заполненной должностью и пустым подразделением. Указано и то и то - заполняете оба поля в регистре.3) А если очистить у них подразделение в регистре адресации?1)Спасибо, исправила.Проверьте, пожалуйста, бизнес процесс. Платформа для подготовки к экзамену накладывает ограничения на количество подключений. Не могу до конца процесс отладить. Все ли правильно?Из того что бросилось в глаза:
1) Как увидеть полный список задач? Вы создали форму задач текущего пользователя, установили её основной. Отобразить просто форму списка нельзя. Это -0.5 балла.
2) Зачем разделять заполнение реквизита КартаБП в событиях ПриСозданииНаСервере и ПриЧтенииНаСервере для новых, неновых бизнес-процессов. Почему просто не прописать установку реквизита КартаБП в процедуре ПриСозданииНаСервере без всяких проверок на пустую ссылку? Неплохо добавить еще установку реквизита КартаБП в событии ПослеЗаписиНаСервере, тогда при нажатии на Кнопку Старт в форме бизнес процесса Вы увидите сразу текущее состояние.
2) Без проверки на пустую ссылку не отображается движение по бизнес-процессу, поэтому оставила.
3) Не могу найти ошибку в настройке: сверка расчетов не отображается в списке задач бухгалтеров Мишиной и Кротова.
Спасибо, помогло. Но странно.Ведь могут быть другие роли, требующие и подразделение?
Спасибо, поняла :DПодскажите, я по поводу полей: количествоОстаток и СтоимостьОстаток. Нужно ли проверять на NULL стоимостьОстаток в запросе? я говорю к тому, что если мы проверили количествоОстаток на налл, то зачем проверять стоимость? т.к. если кол-во есть, значит есть и стоимость, и смысл проверять стоимость я думаю нет.Указано, что задача для всех сотрудников конкретного подразделения - создаете записи в регистре с только заполненным подразделением и пустой должностью, задача для сотрудников любого подразделения конкретной должности - создаете записи с только заполненной должностью и пустым подразделением. Указано и то и то - заполняете оба поля в регистре.3) А если очистить у них подразделение в регистре адресации?1)Спасибо, исправила.Проверьте, пожалуйста, бизнес процесс. Платформа для подготовки к экзамену накладывает ограничения на количество подключений. Не могу до конца процесс отладить. Все ли правильно?Из того что бросилось в глаза:
1) Как увидеть полный список задач? Вы создали форму задач текущего пользователя, установили её основной. Отобразить просто форму списка нельзя. Это -0.5 балла.
2) Зачем разделять заполнение реквизита КартаБП в событиях ПриСозданииНаСервере и ПриЧтенииНаСервере для новых, неновых бизнес-процессов. Почему просто не прописать установку реквизита КартаБП в процедуре ПриСозданииНаСервере без всяких проверок на пустую ссылку? Неплохо добавить еще установку реквизита КартаБП в событии ПослеЗаписиНаСервере, тогда при нажатии на Кнопку Старт в форме бизнес процесса Вы увидите сразу текущее состояние.
2) Без проверки на пустую ссылку не отображается движение по бизнес-процессу, поэтому оставила.
3) Не могу найти ошибку в настройке: сверка расчетов не отображается в списке задач бухгалтеров Мишиной и Кротова.
Спасибо, помогло. Но странно.Ведь могут быть другие роли, требующие и подразделение?
Суровая реальность жизни такова, что если есть количество, стоимость бывает далеко не всегда... и наоборот.
Если я правильно понял мысль Bebi, то да она права. Действительно, если мы в запросе получаем количественный остаток как ЕстьNull (КоличествоОстаток, 0), а затем в коде осуществляем контроль, чтобы количество в документе было больше полученного ранее количественного остатка. Если данные по остаткам раньше не подтянулись, то условие достаточности товара не выполнится, система дальше уже не пойдет и до других полей из регистра остатков просто не дойдет, соответственно и преобразовывать их через оператор ЕстьNull не имеет смысла.Подскажите, я по поводу полей: количествоОстаток и СтоимостьОстаток. Нужно ли проверять на NULL стоимостьОстаток в запросе? я говорю к тому, что если мы проверили количествоОстаток на налл, то зачем проверять стоимость? т.к. если кол-во есть, значит есть и стоимость, и смысл проверять стоимость я думаю нет.Суровая реальность жизни такова, что если есть количество, стоимость бывает далеко не всегда... и наоборот.
Спасибо большое, за такой развернутый ответ!!!Если я правильно понял мысль Bebi, то да она права. Действительно, если мы в запросе получаем количественный остаток как ЕстьNull (КоличествоОстаток, 0), а затем в коде осуществляем контроль, чтобы количество в документе было больше полученного ранее количественного остатка. Если данные по остаткам раньше не подтянулись, то условие достаточности товара не выполнится, система дальше уже не пойдет и до других полей из регистра остатков просто не дойдет, соответственно и преобразовывать их через оператор ЕстьNull не имеет смысла.Подскажите, я по поводу полей: количествоОстаток и СтоимостьОстаток. Нужно ли проверять на NULL стоимостьОстаток в запросе? я говорю к тому, что если мы проверили количествоОстаток на налл, то зачем проверять стоимость? т.к. если кол-во есть, значит есть и стоимость, и смысл проверять стоимость я думаю нет.Суровая реальность жизни такова, что если есть количество, стоимость бывает далеко не всегда... и наоборот.
Но я обычно все ресурсы из присоеденяемых регистров привожу через оператор ЕстьNull, а прочие поля (например, измерения Партия, СрокГодности) уже не преобразовываю.
Ресурсы часто используются в коде в различных проверках, арифметических операциях и если их не преобразовывать, то так как Null очень привередливый тип, то легко можно нарваться на ошибку, если система будет выполнять какие-то манипуляции с Null.
Измерения же обычно просто используются в присвоениях.
Например, Движение.Партия = Выборка.Партия;
Здесь даже если будет Null в Партии, то к ошибке это не приведет.
Поэтому я на экзамене реализовал для всех присоединяемых ресурсов естьNull, для прочих полей - нет.
Ранее было упоминание, что одному из сдающих сделали предупреждение об излишнем использовании Null, но тогда сдающий ко ВСЕМ присоединяемым полям применил функцию ЕстьNull.
Хочу разобрать задачу по строкам.1. Нужно через срез последних получить актуальный метод списания на дату документа, т.к. возможен ввод документов задним числом. В зависимости от того, какое значение получите (ФИФО или ЛИФО) — модифицировать запрос, а именно просто поменять порядок.
Т.к. иногда мне не понятно, надо ли отображать это в задаче, для чего и к чему это написано.
1.При проведении документа необходимо использовать метод, актуальный на момент проведения. ----Как это отразить в коде?
2.Для расчета себестоимости при списании товара необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел.---т.е. сделать так, чтобы всегда находился первый документ, для списания себестоимости, как это реализовать?
СПАСИБО!!!Хочу разобрать задачу по строкам.1. Нужно через срез последних получить актуальный метод списания на дату документа, т.к. возможен ввод документов задним числом. В зависимости от того, какое значение получите (ФИФО или ЛИФО) — модифицировать запрос, а именно просто поменять порядок.
Т.к. иногда мне не понятно, надо ли отображать это в задаче, для чего и к чему это написано.
1.При проведении документа необходимо использовать метод, актуальный на момент проведения. ----Как это отразить в коде?
2.Для расчета себестоимости при списании товара необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел.---т.е. сделать так, чтобы всегда находился первый документ, для списания себестоимости, как это реализовать?
2. Сделать отдельный регистр накопления для списания по себестоимости, у которого в измерениях партия и номенклатура.
Подробности можете узнать, проанализировав выложенные в данной ветке решения.
Подскажите! Решаю пока только опер учет. Скачиваю билеты и везде при входе роли. Это какое то задание будет на них и я просто не дошла до них, или это обязательно нужно делать, как например менять режим на "управляемый".
Как лучше указать методСписания:
МетодСписания = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Период).МетодСписания;
ИЛИ
УчетнаяПолитика = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Дата).Значение;
Сейчас задам очень интересный вопросик. Делала ОУ из билета № 1. Сделала задачу, и заметила такую очень интересную штуку. При проведении расходной накладной в оперативном режиме, данные в регистре себестоимость задваиваются, то есть он вообще списывает всё что есть!Задваиваться ничего не должно. Это в каких решениях такое есть?
Если в не оперативном, то всё прекрасно.
Проверяла здесь у некоторых людей данную задачу, и вуаля, при проведении расходной накладной в оперативном режиме, данные в регистре себестоимости точно так же себя ведут, как и в моем решении. Как это понимать?
это же не правильно! Но задачи других людей, которые я скачивала отсюда, подчеркну: задачи людей, которые сдали они такие же как моя, с такой же ошибкой, то есть на это не смотрят на экзамене?
я уже вроде удалила с ПК такие решения, скачивала 3 раза отсюда, в 2х из них такая проблема.Сейчас задам очень интересный вопросик. Делала ОУ из билета № 1. Сделала задачу, и заметила такую очень интересную штуку. При проведении расходной накладной в оперативном режиме, данные в регистре себестоимость задваиваются, то есть он вообще списывает всё что есть!Задваиваться ничего не должно. Это в каких решениях такое есть?
Если в не оперативном, то всё прекрасно.
Проверяла здесь у некоторых людей данную задачу, и вуаля, при проведении расходной накладной в оперативном режиме, данные в регистре себестоимости точно так же себя ведут, как и в моем решении. Как это понимать?
это же не правильно! Но задачи других людей, которые я скачивала отсюда, подчеркну: задачи людей, которые сдали они такие же как моя, с такой же ошибкой, то есть на это не смотрят на экзамене?
Проверьте моё решение, вроде ошибок нет таких
проблема копеек..Проверьте моё решение, вроде ошибок нет таких
Вроде всё ок. Разве что, не учитывается проблема копеек при списании себестоимости. Если количество списываемого товара равно остатку, то надо списывать всю сумму. Да и код лучше форматируйте сочетанием alt+shift+F.
Нет.проблема копеек..Проверьте моё решение, вроде ошибок нет таких
Вроде всё ок. Разве что, не учитывается проблема копеек при списании себестоимости. Если количество списываемого товара равно остатку, то надо списывать всю сумму. Да и код лучше форматируйте сочетанием alt+shift+F.
вот так написать лучше:СуммаСписания = СуммаОстаток * (КоличествоСписания / КоличествоОстаток)
правильно понимаю?
СпасибоНет.проблема копеек..Проверьте моё решение, вроде ошибок нет таких
Вроде всё ок. Разве что, не учитывается проблема копеек при списании себестоимости. Если количество списываемого товара равно остатку, то надо списывать всю сумму. Да и код лучше форматируйте сочетанием alt+shift+F.
вот так написать лучше:СуммаСписания = СуммаОстаток * (КоличествоСписания / КоличествоОстаток)
правильно понимаю?
Вот так: СуммаСписания = ?(КоличествоСписания = КоличествоОстаток, СуммаОстаток, СуммаОстаток/КоличествоОстаток * КоличествоСписания)
Добрый день. Посмотрите решение БУ и СПР(Доп).С отчетом всё хорошо.
Срок годности реализован через справочник.
- Интересует мнение по отчёту в БУ;
Люди! подскажите как бесплатно скачать? а то инфостарт денег просит ((((((((((Что скачать?
Я, конечно, не профи, но вот это: "ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СрокиГодности КАК СрокиГодностиРасчетные данные получаются именно из регистра. Соединение со справочником нужно лишь для получения даты срока годности для сортировки. Весь же учет - хранение данных товарного учета - разрезы и показатели учета хранятся в регистре.
| ПО Себестоимость.Субконто2 = СрокиГодности.Ссылка
| ПО тч.Номенклатура = Себестоимость.Субконто1"
В запросе БУ звучит как "Получение расчетных данных не из регистра", а это минус три балла. Ну или в крайнем случае, как неоптимальное решение. Зачем напрямую получать данные справочников?
И я смотрю уже не первое решение, подскажите, условие " Товар с одинаковым сроком годности может поступать разными документами и по разной цене." Разве не нужно реализовать с разделением по партиям? Я понимаю, что это нигде в дальнейшем не требуется (в т.ч. и для расчета себестоимости), но если не хранить партию, то товар, который приходит разными документами с разной ценой, но с одним и тем же сроком годности просто складывается, что немного противоречит условию?Не надо ничего придумывать, не сказано ни о каком учете в разрезе партий, вообще ничего о партиях, не надо реализовывать никакой партионный учет. Приходят разными документами и приходят, о ведении учета в разрезе партий нет ни слова. Не усложняйте сами себе условия задач.
Вот этоЛюди! подскажите как бесплатно скачать? а то инфостарт денег просит ((((((((((Что скачать?
Во-первых Инфостарт не денег просит, а Стартмани, у многих они есть за собственные публикации.Вот этоЛюди! подскажите как бесплатно скачать? а то инфостарт денег просит ((((((((((Что скачать?
Специалист по платформе 8.3
Мои решения, описания подготовки, полезные ссылки:
https://expert.chistov.pro/public/537462/
Решена только задача по ОУ.можно же получать учетную политику на дату, а не момент времени
Просьба прокомментировать решение.
Не проверяется что МетодСписания может быть пустым.многие сдавали и без проверки метода списания на пустоту. Так что это не обязательно.
Я не уверен, что порядок строк:
Движения.ОстаткиНоменклатуры.Записать();
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
играет какую-то роль, но на всякий случай их лучше размещать в логически верном порядке. Потому что если играет - это будет расценено как отсутствие блокировки (-1)
В запросе по остатком склад тоже лучше отбирать из втДок, не нужен дополнительный параметр.
Условие КСписанию = ВыборкаДетальныеЗаписи.КоличествоОстаток не обеспечит решение проблемы копеек нужно >= (-1)
И САМОЕ ВАЖНОЕ - приходная накладная не проверяет, услуга это или товар, соответственно накапливаются услуги в регистре остатков, что есть невыведение регистра в 0 (-3)
А значит, что ты уже не сдал)
Прости, если нагнетаю, самому через 2 недели сдавать, легкий мондраж))
Помогите мне, что я делаю не так?Попробуйте поставить режим совместимости с версией 8.3.3
Сначала решала ОУ и актуальных, теперь начала к ним добавлять Бух учет, и уже у второго билета подряд, после того, как всё сделаю, начинаю запускать отладку и появляется такая ошибка. Что это такое?
помогло, спасибо большое!!!Помогите мне, что я делаю не так?Попробуйте поставить режим совместимости с версией 8.3.3
Сначала решала ОУ и актуальных, теперь начала к ним добавлять Бух учет, и уже у второго билета подряд, после того, как всё сделаю, начинаю запускать отладку и появляется такая ошибка. Что это такое?
Проверьте моё решение, вроде ошибок нет таких
Проверьте моё решение, вроде ошибок нет таких
Хочется посмотреть что другие ответят на это. Ждёмс :)
Ну как бы я делала, опираясь на его решения, т.к. этот человек сдал экзаменХочется посмотреть что другие ответят на это. Ждёмс :)
Зачем ждать. Ставите точку астанова и нажимаете ПРОВЕСТИ. сперва не привышайте количество, потом превышайте количество, и поймете что стрелочка ни когда там не будет проходить, даже если прям так сильно захочется. и в конце зачем
ЕСЛИ ОТКАЗ ТОГДА ВОЗВРАТ???? он ни когда не будет использоваться. Немного надо подумать прежде чем написать, или хотяб проверять чужой код.
Ну как бы я делала, опираясь на его решения, т.к. этот человек сдал экзаменХочется посмотреть что другие ответят на это. Ждёмс :)
Зачем ждать. Ставите точку астанова и нажимаете ПРОВЕСТИ. сперва не привышайте количество, потом превышайте количество, и поймете что стрелочка ни когда там не будет проходить, даже если прям так сильно захочется. и в конце зачем
ЕСЛИ ОТКАЗ ТОГДА ВОЗВРАТ???? он ни когда не будет использоваться. Немного надо подумать прежде чем написать, или хотяб проверять чужой код.
Ну про себестоимость я знаю.Ну как бы я делала, опираясь на его решения, т.к. этот человек сдал экзаменХочется посмотреть что другие ответят на это. Ждёмс :)
Зачем ждать. Ставите точку астанова и нажимаете ПРОВЕСТИ. сперва не привышайте количество, потом превышайте количество, и поймете что стрелочка ни когда там не будет проходить, даже если прям так сильно захочется. и в конце зачем
ЕСЛИ ОТКАЗ ТОГДА ВОЗВРАТ???? он ни когда не будет использоваться. Немного надо подумать прежде чем написать, или хотяб проверять чужой код.
Опирайтесь на его решения. Я уже многие пересмотрел и понял что у него правильней решены, и меньше ошибок, я бы сказал мало ошибок. Но они есть, но незначительные. Двойку не поставят на экзамене за это, но бал снимут))) Плюс он неправильно себестоимость расчитывает: Нужно сперва умножение, потом деление ВОТ ТАК ?(Выборка.Количесво = Выборка.КоличествоОстаток,ВыборкаСуммаОстаток, Выборка.Количество * Выборка.СуммаОстаток / ВыборкаКоличествоОстаток);
Ну про себестоимость я знаю.Ну как бы я делала, опираясь на его решения, т.к. этот человек сдал экзаменХочется посмотреть что другие ответят на это. Ждёмс :)
Зачем ждать. Ставите точку астанова и нажимаете ПРОВЕСТИ. сперва не привышайте количество, потом превышайте количество, и поймете что стрелочка ни когда там не будет проходить, даже если прям так сильно захочется. и в конце зачем
ЕСЛИ ОТКАЗ ТОГДА ВОЗВРАТ???? он ни когда не будет использоваться. Немного надо подумать прежде чем написать, или хотяб проверять чужой код.
Опирайтесь на его решения. Я уже многие пересмотрел и понял что у него правильней решены, и меньше ошибок, я бы сказал мало ошибок. Но они есть, но незначительные. Двойку не поставят на экзамене за это, но бал снимут))) Плюс он неправильно себестоимость расчитывает: Нужно сперва умножение, потом деление ВОТ ТАК ?(Выборка.Количесво = Выборка.КоличествоОстаток,ВыборкаСуммаОстаток, Выборка.Количество * Выборка.СуммаОстаток / ВыборкаКоличествоОстаток);
Тогда объясните мне, зачем он делает проверку, если туда никогда не зайдет?
Он же сделал это, значит нужно было. Помогите мне понять, зачем тогда он это сделал?
Правильно делать именно с двумя проверками. Потому что это два разных регистра, связи между регистрами не гарантируются платформой, поэтому это нужно сделать вручную. В подобных случаях лучше мыслить: "А почему бы этого не сделать?". По времени лишние 2 минуты, производительность системы не упадет, везде в выигрыше)Вот я тоже так думаю
Правильно делать именно с двумя проверками. Потому что это два разных регистра, связи между регистрами не гарантируются платформой, поэтому это нужно сделать вручную. В подобных случаях лучше мыслить: "А почему бы этого не сделать?". По времени лишние 2 минуты, производительность системы не упадет, везде в выигрыше)Белоусов проговаривает необходимость проверок для каждого регистра...
По какой причине это может быть при проведении расходной накладной в Регистр себестоимость пишется 2 записи? а в регистр остатки Нормально, как и должно, однаПроверьте, как расставляете флаги на запись в регистр и когда ит какие мтоды записи используете. Или решение в студию.
По какой причине это может быть при проведении расходной накладной в Регистр себестоимость пишется 2 записи? а в регистр остатки Нормально, как и должно, одна
Вот приведу пример.Сложно понять без решения, похоже, что не установлен отбор виртуальной таблицы по складку при записи движений себестоимости
В приходной накладной 1-- на основном складе 10 ручек
В приходной накладной 2-- на транзитном складе 5 ручек.
Провожу расходную накладную: со склада Основной 10 ручек, а в регистре отображается, что списывается 5 ручек со второй накладной и 5 ручек с первой.
Метод списания-лифо
вроде правильно, но по условию же должно списываться только с основного склада. а в во второй то у меня транзитный. как понять мне это?
но в регистре захожу и в первую и во вторую накладную, там везде основной склад. Это так и должно? я вообще запуталась
посмотрите тогда,буду благодарна, если скажете в чем делоВот приведу пример.Сложно понять без решения, похоже, что не установлен отбор виртуальной таблицы по складку при записи движений себестоимости
В приходной накладной 1-- на основном складе 10 ручек
В приходной накладной 2-- на транзитном складе 5 ручек.
Провожу расходную накладную: со склада Основной 10 ручек, а в регистре отображается, что списывается 5 ручек со второй накладной и 5 ручек с первой.
Метод списания-лифо
вроде правильно, но по условию же должно списываться только с основного склада. а в во второй то у меня транзитный. как понять мне это?
но в регистре захожу и в первую и во вторую накладную, там везде основной склад. Это так и должно? я вообще запуталась
посмотрите тогда,буду благодарна, если скажете в чем делоВот приведу пример.Сложно понять без решения, похоже, что не установлен отбор виртуальной таблицы по складку при записи движений себестоимости
В приходной накладной 1-- на основном складе 10 ручек
В приходной накладной 2-- на транзитном складе 5 ручек.
Провожу расходную накладную: со склада Основной 10 ручек, а в регистре отображается, что списывается 5 ручек со второй накладной и 5 ручек с первой.
Метод списания-лифо
вроде правильно, но по условию же должно списываться только с основного склада. а в во второй то у меня транзитный. как понять мне это?
но в регистре захожу и в первую и во вторую накладную, там везде основной склад. Это так и должно? я вообще запуталась
Спасибо большое ::)посмотрите тогда,буду благодарна, если скажете в чем делоВот приведу пример.Сложно понять без решения, похоже, что не установлен отбор виртуальной таблицы по складку при записи движений себестоимости
В приходной накладной 1-- на основном складе 10 ручек
В приходной накладной 2-- на транзитном складе 5 ручек.
Провожу расходную накладную: со склада Основной 10 ручек, а в регистре отображается, что списывается 5 ручек со второй накладной и 5 ручек с первой.
Метод списания-лифо
вроде правильно, но по условию же должно списываться только с основного склада. а в во второй то у меня транзитный. как понять мне это?
но в регистре захожу и в первую и во вторую накладную, там везде основной склад. Это так и должно? я вообще запуталась
Я понял о чем вы) В решении, если придираться, можно найти косяки, но смысл правильный)
По условию: Для расчета себестоимости при списании товара необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел.
То есть когда вы делаете списания по себестоимости вы игнорируете склад и это правильно. Складской учет только в разрезе остатков, а партионный в разрезе номенклатуры. И движения правильные по обоим регистрам)
Еще вопрос. С отчетами раньше не работала. Почему у меня при этой галочке в периоде нет никаких данных в отчете? Причем не важно что я выберу:произвольная дата, начало этого дня и тд..ответ напрямую зависит от того, как дата обрабатывается в запросе. Картинка лишь говорит, что переменная используется. Решение приложите вместе с картинкой
А как только уберу эту галочку и всё нормально показывает.
Добрый день. При решении СПР правильно ли будет создать регистр сведений со шкалой стажа (2 измерения) ОТ и ДО и значением процента премии?из опыта удаленной сдачи именно первого билета (оценка 4) - в этой задаче использовал только один РС с измерениями "ОТ", "ДО" для хранения размера премии. Сведения о стаже держал в справочнике "Сотрудник" как "Дата приема" и "стаж на дату приема" (указав в записке, что в последнем реквизите хранится именно требуемый по задаче стаж работы на данном предприятии до даты приема)... Защищать вы будете свое решение, но не забывайте о факторе времени, когда вам нужно набить решение задач билета, набить данные для отладки и демонстрации работы отчетов... Меня лично интересовала именно сдача, и при подготовке я заранее, сознательно планировал моменты, на которых можно сэкономить время без значительного ущерба для итоговой "сдачи".
Добрый день!Почти уверен, что это:
Начал готовиться к сдаче на специалиста.
Кому не тяжело, посмотрите моё решение пока только по ОУ и дайте комментарии.
Спасибо.
Добрый день!Почти уверен, что это:
Начал готовиться к сдаче на специалиста.
Кому не тяжело, посмотрите моё решение пока только по ОУ и дайте комментарии.
Спасибо.
?(КоличествоСписать = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Не будет работать правильно.
Я бы сказал, что скорее вот так: ?(КоличествоСписать >= ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,Добрый день!Почти уверен, что это:
Начал готовиться к сдаче на специалиста.
Кому не тяжело, посмотрите моё решение пока только по ОУ и дайте комментарии.
Спасибо.
?(КоличествоСписать = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Не будет работать правильно.
нужно было вот так?:
?(Движение.Количество = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Что я не так делаю?
Что я не так делаю?ДатаПриема справочника сотрудники действительно Дата? из картинки следует что там что то не так. Почему вы не любите выкладывать базы, предпочитая картинки?
сделала "Добавить к дате"-синтаксическая ошибка:) Конечно, так как РазностьДат вернет число. У ДобавитьКДате иные входные типы.
Да думаю постоянно, что мои ошибки от моей невнимательности и их можно увидеть или понять по картинке))Что я не так делаю?ДатаПриема справочника сотрудники действительно Дата? из картинки следует что там что то не так. Почему вы не любите выкладывать базы, предпочитая картинки?
Я бы сказал, что скорее вот так: ?(КоличествоСписать >= ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,Добрый день!Почти уверен, что это:
Начал готовиться к сдаче на специалиста.
Кому не тяжело, посмотрите моё решение пока только по ОУ и дайте комментарии.
Спасибо.
?(КоличествоСписать = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Не будет работать правильно.
нужно было вот так?:
?(Движение.Количество = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * КоличествоСписать / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Добрый день. Оцени плиз СПР.
Судите строго), буду рад критике.:) Спасибо
Ага, я потом потестил, работает вроде нормально, так что я ошибся насчет работоспособности. Но смотрится действительно так себе)Я бы сказал, что скорее вот так: ?(КоличествоСписать >= ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,Добрый день!Почти уверен, что это:
Начал готовиться к сдаче на специалиста.
Кому не тяжело, посмотрите моё решение пока только по ОУ и дайте комментарии.
Спасибо.
?(КоличествоСписать = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Не будет работать правильно.
нужно было вот так?:
?(Движение.Количество = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * КоличествоСписать / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Проверял работоспособность данного варианта записи РН (Движение.Количество... и т.д.) - работает верно. Возможно есть какие-то нюансы. Уточните, почему не стоит или нельзя использовать данную конструкцию без приведения ее к переменной? ИМХО, смотрится кривовато, но на работоспособность-то не влияет?
Ага, я потом потестил, работает вроде нормально, так что я ошибся насчет работоспособности. Но смотрится действительно так себе)Я бы сказал, что скорее вот так: ?(КоличествоСписать >= ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,Добрый день!Почти уверен, что это:
Начал готовиться к сдаче на специалиста.
Кому не тяжело, посмотрите моё решение пока только по ОУ и дайте комментарии.
Спасибо.
?(КоличествоСписать = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Не будет работать правильно.
нужно было вот так?:
?(Движение.Количество = ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток, ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток,
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * Движение.Количество / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
ВыборкаДетальныеЗаписиНоменклатура.СуммаОстаток * КоличествоСписать / ВыборкаДетальныеЗаписиНоменклатура.КоличествоОстаток);
Проверял работоспособность данного варианта записи РН (Движение.Количество... и т.д.) - работает верно. Возможно есть какие-то нюансы. Уточните, почему не стоит или нельзя использовать данную конструкцию без приведения ее к переменной? ИМХО, смотрится кривовато, но на работоспособность-то не влияет?
По размеру, факту, запрет незаполненых, тупо невнимательность) сделал за 30 минут как время появилось на работе.Добрый день. Оцени плиз СПР.
Судите строго), буду рад критике.:) Спасибо
-Зачем хранить размер и факт в РР ОН? Размер получается из РС во время расчета, а факт, даже не используется нигде.
-Забавно, что у Сотрудника в РР ОН стоит галка запрета незаполненных значений, а в РР ДН не стоит, возможно стоит придерживаться какого-то единообразия.
-Чем обусловлена такая странная система хранения стажа? Разве не проще сразу в РС иметь измерения ОТ и ДО, а не выносить их в отдельный справочник?
-Условие "В форме документа "Начисление зарплаты" необходимо предусмотреть наличие кнопки "Рассчитать", при нажатии на которую, будет произведен предварительный расчет зарплаты. Результат расчета должен быть отражен в табличной части этой же формы не выполнено
- (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(СведенияОСтажеСотрудников.ДатаПринятияНаРаботу, &Текущаядата, ДЕНЬ) КАК ЧИСЛО(3, 0))) / 365 - 0.4999 + СведенияОСтажеСотрудников.СтажДоПринятия кажется неоправданным
-Разделение на 2 функции: РасчитатьОсновныеНачисления и РасчитатьДополнительныеНачисления даст больше гибкости и кажется более красивым вариантом
А так на первый взгляд, вроде все в порядке
Запрос.Текст =
"ВЫБРАТЬ
| ТабДок.Номенклатура КАК Номенклатура,
| ТабДок.Количество КАК Количество,
| СебестоимостьОстатки.Партия,
| ЕСТЬNULL(СебестоимостьОстатки.КоличествоОстаток, 0) КАК КоличестоОст,
| ЕСТЬNULL(СебестоимостьОстатки.СуммаОстаток, 0) КАК СуммаОст
|ИЗ
| ТабДок КАК ТабДок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Себестоимость.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| ТабДок.Номенклатура
| ИЗ
| ТабДок КАК ТабДок)) КАК СебестоимостьОстатки
| ПО ТабДок.Номенклатура = СебестоимостьОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| СебестоимостьОстатки.Партия.МоментВремени" + ПорядокСортировки +"
|ИТОГИ
| МАКСИМУМ(Количество)
|ПО
| Номенклатура";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
РезультатЗапроса = Запрос.Выполнить();
ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
ОсталосьСписать = ВыборкаНоменклатура.Количество;
ВыборкаПартия = ВыборкаНоменклатура.Выбрать();
Пока ВыборкаПартия.Следующий() И ОсталосьСписать>0 Цикл
Списать = МИН(ОсталосьСписать, ВыборкаПартия.КоличестоОст);
Движение = Движения.Себестоимость.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаПартия.Номенклатура;
Движение.Партия = ВыборкаПартия.Партия;
Движение.Количество = Списать;
Если Списать = ВыборкаПартия.КоличестоОст Тогда
Движение.Сумма = ВыборкаПартия.СуммаОст;
Иначе
Движение.Сумма = Списать * ВыборкаПартия.СуммаОст / ВыборкаПартия.КоличестоОст;
КонецЕсли;
ОсталосьСписать = ОсталосьСписать - Списать;
КонецЦикла;
КонецЦикла;
Здравствуйте.2. Ну вообще проверка нужна, но многие кто сдавал, обходились и без нее. Но мне кажется нужно, мы же не можем приходовать услугу. По поводу баллов не знаю. Может и снимут 0,5. Но это не точно. Лучше сделать проверку и всё, там 1 строчка кода, потратите 10 сек
Возникли два вопроса по задаче оперативного учета:
1. При проведении реализации мы контролируем остатки регистра "ОстаткиНоменклатуры" по новой методике . Списание Себестоимости "ПартииТоваров" по старой. Смотрю примеры решений и не вижу проверки достаточности количества для ПартииТоваров. Т.е. если для регистра "ОстаткиНоменклатуры" количества хватило то для второго регистра только списываем по партиям без проверки количества.
Пример Хильды:Код: [Выделить]
Запрос.Текст =
"ВЫБРАТЬ
| ТабДок.Номенклатура КАК Номенклатура,
| ТабДок.Количество КАК Количество,
| СебестоимостьОстатки.Партия,
| ЕСТЬNULL(СебестоимостьОстатки.КоличествоОстаток, 0) КАК КоличестоОст,
| ЕСТЬNULL(СебестоимостьОстатки.СуммаОстаток, 0) КАК СуммаОст
|ИЗ
| ТабДок КАК ТабДок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Себестоимость.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| ТабДок.Номенклатура
| ИЗ
| ТабДок КАК ТабДок)) КАК СебестоимостьОстатки
| ПО ТабДок.Номенклатура = СебестоимостьОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| СебестоимостьОстатки.Партия.МоментВремени" + ПорядокСортировки +"
|ИТОГИ
| МАКСИМУМ(Количество)
|ПО
| Номенклатура";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
РезультатЗапроса = Запрос.Выполнить();
ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
ОсталосьСписать = ВыборкаНоменклатура.Количество;
ВыборкаПартия = ВыборкаНоменклатура.Выбрать();
Пока ВыборкаПартия.Следующий() И ОсталосьСписать>0 Цикл
Списать = МИН(ОсталосьСписать, ВыборкаПартия.КоличестоОст);
Движение = Движения.Себестоимость.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаПартия.Номенклатура;
Движение.Партия = ВыборкаПартия.Партия;
Движение.Количество = Списать;
Если Списать = ВыборкаПартия.КоличестоОст Тогда
Движение.Сумма = ВыборкаПартия.СуммаОст;
Иначе
Движение.Сумма = Списать * ВыборкаПартия.СуммаОст / ВыборкаПартия.КоличестоОст;
КонецЕсли;
ОсталосьСписать = ОсталосьСписать - Списать;
КонецЦикла;
КонецЦикла;
2. В приходной накладной достаточно кода сформированного конструктором ? Т.е. не обязательно проверять на услугу?
Т.е. Проверка на услугу в ПРИХОДНОЙ накладной относиться к разряду красивостей? И если этого не будет то баллы не снимут?
Спасибо.
Здравствуйте.
Возникли два вопроса по задаче оперативного учета:
Добрый день. На сколько критично если на прибылиУбытки создал субконто номенклатуру, только обороты. Просто для детализации сумм проданного товара? По идее там не должно быть аналитики просто общая сумма. Но с оборотным субконто грубая ошибка ?
Срок годности в БУ задаче обязательно делать справочником? смотрю большинство решений с ним. А что если тупо в приходной реквизитТЧ дата и а Видсубконто тип дата? не докопаются на экзамене?В жизни не рекомендуется делать примитивный тип в качестве типа субконто регистра бухгалтерии, а вот на экзамене допускается.
//Бухгалтерский учет
Движения.Управленческий.Записывать=Истина;
Движения.Управленческий.БлокироватьДляИзменения=Истина;
Движения.Управленческий.Записать();
Может кто-то объяснить этот код? Особенно последнюю строку....
Может кто-то объяснить этот код? Особенно последнюю строку... Это начало кода обработки проведения бухгалтерской задачиДвижения.Управленческий.Записывать=Истина; - как бы нужно записать движенияКод: [Выделить]
//Бухгалтерский учет
Движения.Управленческий.Записывать=Истина;
Движения.Управленческий.БлокироватьДляИзменения=Истина;
Движения.Управленческий.Записать();
Может кто-то объяснить этот код? Особенно последнюю строку... Это начало кода обработки проведения бухгалтерской задачиКод: [Выделить]
//Бухгалтерский учет
Движения.Управленческий.Записывать=Истина;
Движения.Управленческий.БлокироватьДляИзменения=Истина;
Движения.Управленческий.Записать();
Движения.Управленческий.Записать(); - принудительная запись движений в регистр бухгалтерии, сбрасывает флаг: записывать = Истина.А вот здесь неверно - флаг не сбрасывается.
Поняла, спасибо)Движения.Управленческий.Записать(); - принудительная запись движений в регистр бухгалтерии, сбрасывает флаг: записывать = Истина.А вот здесь неверно - флаг не сбрасывается.
Флаг сбрасывается при записи коллекции движений - Движения.Записать()
благодарю :)Может кто-то объяснить этот код? Особенно последнюю строку... Это начало кода обработки проведения бухгалтерской задачиКод: [Выделить]
//Бухгалтерский учет
Движения.Управленческий.Записывать=Истина;
Движения.Управленческий.БлокироватьДляИзменения=Истина;
Движения.Управленческий.Записать();
Последняя строка записывает пустой набор записей в регистр, удаляя тем самым записи в регистре текущего документа, которые были сформированы ранее (при предыдущем проведении). При старой методике это необходимо делать обязательно, иначе можно получая данные из регистра, получить и неактуальные движения проводимого документа, тем самым получить некорректные данные по остаткам.
Из-за установленного свойства БлокироватьДляИзменения в Истина (Движения.Управленческий.БлокироватьДляИзменения=Истина) запись движений в регистр происходит с блокированием "старых" (предыдущих) данных документа.
Ну а первая строка просто устанавливает маркер записи, чтобы при выходе из процедуры проведения сформированные записи были записаны в регистр.
В этом билете есть цена, сумму надо автоматом рассчитывать? На это будут смотреть?Если время на экзамене останется, то можно и посчитать. Но это при условии, что в билете этого не нужно
В этом билете есть цена, сумму надо автоматом рассчитывать? На это будут смотреть?Если время на экзамене останется, то можно и посчитать. Но это при условии, что в билете этого не нужно
Нет, так написано не будет. Я про то, что возможно в билетах где то потребуется эта сумма, эта колонка , которую вы хотите чтобы автоматически считалась. Но это вряд ли. Потому что если и требуется где то сумма, то это сумма по документу, а не сумма одной строки в табличной части.В этом билете есть цена, сумму надо автоматом рассчитывать? На это будут смотреть?Если время на экзамене останется, то можно и посчитать. Но это при условии, что в билете этого не нужно
т.е. может быть написано чтобы рассчитывалось автоматически?
Всем привет. Начал подготовку к экзамену.В расходной накладной:
Буду признателен за замечания и критику по решениям билетов.
Сразу скажу, оформление отчетов не приводил в точное соответствие билетам.
Заранее спасибо!
Михаил Проходцев, походу у вас ошибка в 1 билете (которые на инфостарте). Расходная накладная, проведение по бух учету, переменная "Списываем"В одном из обновлений решений переименовывал некоторые переменные, давал им более "говорящие" имена, собственно тогда Списываем и стало КоличествоСписываем, но в одном месте осталось старое название, причем из-за того, что переменная с таким именем инциализируется ранее, ошибки при исполнении кода не будет.
Добрый вечер. Смотрела разные решения по 1 билету и все равно в сомнениях. Будет ли ошибкой, если в билете выбрать неправильную методику проведения? Кто-то делает все по старой методике, кто-то списывает остатки по новой, а рассчитывает себестоимость по старой.Внимательнее разберитесь с методиками контроля и условиями их применимости. Есть себестоимость - только "Старая". Нет себестоимости - новая. Принимающие рекомендуют контролировать все регистры, по подходящей методике. но это время ;)
Ну вот в конкретной задаче ОУ в этом билете. Есть два регистра - Остатки товаров и Партии товаров. Для расчета себестоимости по партиям используем старую методику - тут нет вопросов. А вот для контроля остатков кто-то делает по новой методике - сначала записывает движения, а потом проверяет на <0, а кто-то по старой - сразу одним запросом и проверяет остатки, и рассчитывает себестоимость. Проще делать всё по старой, но у меня возникли сомнения, не будет ли это ошибкой на экзамене.Добрый вечер. Смотрела разные решения по 1 билету и все равно в сомнениях. Будет ли ошибкой, если в билете выбрать неправильную методику проведения? Кто-то делает все по старой методике, кто-то списывает остатки по новой, а рассчитывает себестоимость по старой.Внимательнее разберитесь с методиками контроля и условиями их применимости. Есть себестоимость - только "Старая". Нет себестоимости - новая. Принимающие рекомендуют контролировать все регистры, по подходящей методике. но это время ;)
Ну вот в конкретной задаче ОУ в этом билете. Есть два регистра - Остатки товаров и Партии товаров. Для расчета себестоимости по партиям используем старую методику - тут нет вопросов. А вот для контроля остатков кто-то делает по новой методике - сначала записывает движения, а потом проверяет на <0, а кто-то по старой - сразу одним запросом и проверяет остатки, и рассчитывает себестоимость. Проще делать всё по старой, но у меня возникли сомнения, не будет ли это ошибкой на экзамене.Найдите на сайте 1С документ Аттестация по системе "1С:Предприятие 8"
У вас какой-то общий ответ "на все случаи жизни" =) Я понимаю, как работают эти методики, я спрашиваю про конкретный билет...Ну вот в конкретной задаче ОУ в этом билете. Есть два регистра - Остатки товаров и Партии товаров. Для расчета себестоимости по партиям используем старую методику - тут нет вопросов. А вот для контроля остатков кто-то делает по новой методике - сначала записывает движения, а потом проверяет на <0, а кто-то по старой - сразу одним запросом и проверяет остатки, и рассчитывает себестоимость. Проще делать всё по старой, но у меня возникли сомнения, не будет ли это ошибкой на экзамене.Найдите на сайте 1С документ Аттестация по системе "1С:Предприятие 8"
Экзамен "1С:Специалист" по платформе "1С:Предприятие 8" (вложил ATT83PL на момент своей подготовки, вряд ли он изменился, но проверить стоит). Ознакомьтесь. Может оказаться полезным. Конкретно в этой задаче наиболее правильным будет контроль обоих регистров, если решаете на двух, по соответствующей методике.
Определите для себя цель похода на экзамен, свою методику решения каждой из задач и её запоминайте и тренируйте на время. Не билеты, не задачи, а методику решения задачи (в тексте могут быть нюансы). мне этот подход позволил сдать удаленно с первого раза, с оценкой 4. У вас не будет много времени на выбор там, поэтому все выборы для себя принимайте заранее (тут я буду делать так то, тут так, здесь допускаю то-то и и указываю то-то в комментариях...) хотя все это сугубо индивидуально, Белоусов в одной из лекций упоминает случай написания кода задачи за 15 минут...
... Белоусов в одной из лекций упоминает случай написания кода задачи за 15 минут...За 13... :o
Конкретный ответ на конкретный вопрос "будет ли это ошибкой на экзамене" вы получите после предъявления конкретного решения конкретному экзаменатору. Я высказываю то, что вынес из прочтения топиков и просмотра курсов Чистова и Белоусова. Повторяю конкретно: " моя точка зрения - использование старой методики там, где возможно использование новой снизит бал"Ну вот в конкретной задаче ОУ в этом билете. Есть два регистра - Остатки товаров и Партии товаров. Для расчета себестоимости по партиям используем старую методику - тут нет вопросов. А вот для контроля остатков кто-то делает по новой методике - сначала записывает движения, а потом проверяет на <0, а кто-то по старой - сразу одним запросом и проверяет остатки, и рассчитывает себестоимость. Проще делать всё по старой, но у меня возникли сомнения, не будет ли это ошибкой на экзамене.
У вас какой-то общий ответ "на все случаи жизни" =) Я понимаю, как работают эти методики, я спрашиваю про конкретный билет...
Добрый день.Такое ощущение, как будто вы взяли чей то старый билет и выложили его сюда на проверку) Потому что формулы старые, как раньше делали, и не соблюдены некоторые условия. Вы точно брали АКТУАЛЬНЫЕ билеты?
Готовлюсь к экзамену, решил первый билет, просьба кто может дать по решению объективную критику.
Буду очень благодарен и признателен, большое спасибо
Спасибо, да вы правы, я брал за основу старую конф, но и сам там много чего сделал,я просто не знаю стандартов сдачи, по этому и делал по аналогии, у вас нет какого нибудь решения первого билета?Ну кнопку "Рассчитать" нужно обязательно делать, это же в билете написано, значит обязательно)
2) А кнопка рассчитать это обязательное требование?
3) Понял большое спасибо.
4)Исправлю)
5) уберу.
А у вас нет тестового какого нибудь примера?Вот в этом билете есть реализация этого условия
Подскажите почему в отчете не выводятся данные?Блин помогите, сделала другой отчет по другому билету, там тоже нет данных.
Например есть документ НАЧИСЛЕНИЕ ЗП, в нем начислен оклад и премия за 01.12.2020
и отчет формирую за декабрь и данные не выводятся. Почему это может быть?
Вопрос про Расчеты.Как понять из чего следует?)
Смотрю пример решения. Не могу понять, из чего в условии задачи следует, что зарплата рассчитывается при нажатии кнопки на форме?
Вопрос про Расчеты.Как понять из чего следует?)
Смотрю пример решения. Не могу понять, из чего в условии задачи следует, что зарплата рассчитывается при нажатии кнопки на форме?
Для реализации дополнительного условия по расчету начислений прямо из формы документа «Начисление зарплаты» в табличные части документа «Начисление зарплаты» добавлены дополнительные реквизиты, в том числе реквизит «Результат» для хранения результатов расчета по начислениям.
При выполнении команды «Рассчитать» формы документа вызывается процедура, выполняющая сначала весь расчет по начислениям, а затем помещение результат расчета в табличную часть документа. При проведении просто данные табличной части помещаются в регистр.
В пояснении к решению:Оу, какие знакомые поясненения к решениям)ЦитироватьДля реализации дополнительного условия по расчету начислений прямо из формы документа «Начисление зарплаты» в табличные части документа «Начисление зарплаты» добавлены дополнительные реквизиты, в том числе реквизит «Результат» для хранения результатов расчета по начислениям.В условиях задачи не вижу никаких дополнительных условий
При выполнении команды «Рассчитать» формы документа вызывается процедура, выполняющая сначала весь расчет по начислениям, а затем помещение результат расчета в табличную часть документа. При проведении просто данные табличной части помещаются в регистр.
Здравствуйте.Белоусов говорил не нужно заморачиваться, а отчёт внешний вид один в один должен быть
В отчете первой задачи "Остатки на дату" нужно дополнительно что то делать с периодом?
"КонецПериода(Период, "День")" или
ДобавитьКДате(период,"Секунда",1).
Смотрю в решениях никто ничего не добавляет.
Спасибо.
Запрос.Текст =
"ВЫБРАТЬ
| ДокТЧ.Номенклатура КАК Номенклатура,
| ДокТЧ.Номенклатура.Представление,
| УправленческийОстатки.Субконто2 КАК СрокГодности,
| ДокТЧ.Количество КАК Количество,
| ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаОстаток
|ИЗ
| ДокТЧ КАК ДокТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &Субконто,
| Субконто1 В
| (ВЫБРАТЬ
| ДокТЧ.Номенклатура
| ИЗ
| ДокТЧ КАК ДокТЧ)) КАК УправленческийОстатки
| ПО ДокТЧ.Номенклатура = УправленческийОстатки.Субконто1
|
|УПОРЯДОЧИТЬ ПО
| СрокГодности
|ИТОГИ
| МИНИМУМ(Количество),
| СУММА(КоличествоОстаток),
| СУММА(СуммаОстаток)
|ПО
| Номенклатура";
Субконто = Новый Массив;
Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности);
Запрос.УстановитьПараметр("Субконто", Субконто);
Запрос.УстановитьПараметр("Товары", ПланыСчетов.Управленческий.Товары);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
// Вставить обработку выборки ВыборкаНоменклатура
Если ВыборкаНоменклатура.Количество > ВыборкаНоменклатура.КоличествоОстаток Тогда
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Недостаточно товара " + ВыборкаНоменклатура.НоменклатураПредставление + " есть только " + ВыборкаНоменклатура.КоличествоОстаток;
Сообщение.Сообщить();
КонецЕсли;
Если Отказ Тогда
Продолжить;
КонецЕсли;
ОсталосьСписать = ВыборкаНоменклатура.Количество;
КоличествоОбщийОстаток = ВыборкаНоменклатура.КоличествоОстаток;
СуммаОбщийОстаток = ВыборкаНоменклатура.СуммаОстаток;
ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать();
Пока ОсталосьСписать > 0 И ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.СрокГодности = Null Тогда
Продолжить;
КонецЕсли;
// регистр Управленческий
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
Движение.Период = Дата;
Движение.КоличествоКт = Мин(ОсталосьСписать, ВыборкаДетальныеЗаписи.КоличествоОстаток);
Движение.Сумма = Движение.КоличествоКт / КоличествоОбщийОстаток * СуммаОбщийОстаток;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.СрокГодности] = ВыборкаДетальныеЗаписи.СрокГодности;
ОсталосьСписать = ОсталосьСписать - Движение.КоличествоКт;
КоличествоОбщийОстаток = КоличествоОбщийОстаток - Движение.КоличествоКт;
СуммаОбщийОстаток = СуммаОбщийОстаток - Движение.Сумма;
КонецЦикла;
КонецЦикла;
Субконто1 = Новый Массив;
Субконто1.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
Субконто2 = Новый Массив;
Субконто2.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
Субконто2.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество
|ПОМЕСТИТЬ ТабДок
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
| И РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.ВидНоменклатуры <> &Услуга
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТабДок.Номенклатура КАК Номенклатура,
| ТабДок.Количество КАК Количество,
| ЕСТЬNULL(БезСрока.КоличествоОстаток, 0) КАК КоличествоОбщее,
| ЕСТЬNULL(БезСрока.СуммаОстаток, 0) КАК СуммаОбщее,
| СоСроком.Субконто2 КАК СрокГодности,
| ЕСТЬNULL(СоСроком.КоличествоОстаток, 0) КАК КоличествоПоСрокам,
| ТабДок.Номенклатура.Представление
|ИЗ
| ТабДок КАК ТабДок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &Субконто1,
| Субконто1 В
| (ВЫБРАТЬ
| ТабДок.Номенклатура
| ИЗ
| ТабДок КАК ТабДок)) КАК БезСрока
| ПО ТабДок.Номенклатура = БезСрока.Субконто1
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Товары,
| &Субконто2,
| Субконто1 В
| (ВЫБРАТЬ
| ТабДок.Номенклатура
| ИЗ
| ТабДок КАК ТабДок)) КАК СоСроком
| ПО ТабДок.Номенклатура = СоСроком.Субконто1
|
|УПОРЯДОЧИТЬ ПО
| СрокГодности
|ИТОГИ
| МАКСИМУМ(Количество),
| СУММА(КоличествоПоСрокам)
|ПО
| Номенклатура";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Субконто1", Субконто1);
Запрос.УстановитьПараметр("Субконто2", Субконто2);
Запрос.УстановитьПараметр("Товары", ПланыСчетов.Управленческий.Товары);
Запрос.УстановитьПараметр("Услуга", Перечисления.ВидыНоменклатуры.Услуга);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
Нехватка = ВыборкаНоменклатура.Количество - ВыборкаНоменклатура.КоличествоПоСрокам;
Если Нехватка >0 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "В документе № " + Номер + " не хватает " + ВыборкаНоменклатура.НоменклатураПредставление + " в количестве " + Нехватка ;
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
Если НЕ Отказ Тогда
ОсталосьСписать = ВыборкаНоменклатура.Количество;
Выборка = ВыборкаНоменклатура.Выбрать();
Пока Выборка.Следующий() И ОсталосьСписать>0 Цикл
Списать = МИН(ОсталосьСписать, Выборка.КоличествоПоСрокам);
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
Движение.Период = Дата;
Движение.КоличествоКт = Списать;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.СрокГодности] = Выборка.СрокГодности;
Если Списать = Выборка.КоличествоОбщее Тогда
Движение.Сумма = Выборка.СуммаОбщее;
Иначе
Движение.Сумма = Списать * Выборка.СуммаОбщее / Выборка.КоличествоОбщее;
КонецЕсли;
ОсталосьСписать = ОсталосьСписать - Списать;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Еще вопрос по бухгалтерской задаче . Смотрю у некоторых по разному вычисляються ОбщееКоличество и общая сумма . т.е. без учета сроков годности.Оба варианта дают корректный ответ. Меня тоже при проверке немного смутил вариант решения, предложенный Niczzz. Можете ранее найти, я писал ему ранее в этой ветке после проверки его решения, но он объяснил, что сделано это по заветам Белоусова. Похоже, что это один из вариантов решения из курсов этого преподавателя.
например у Niczzz эти значения берутся просто из итогов Регистра по срокам годности и затем при переборе сроков годности происходит вычитание списанных сумм и количества из
этих общих сумм(!) :
А у других делаеться еще одно левое соединение к регистру С субконто без Срока годности:
Это просто два разных ПРАВИЛЬНЫХ варианта решения одной задачи или все таки есть принципиальное различие? Мне лично Первый вариант кажется немного сомнительным.
Интересно ваше мнение.
Спасибо.
|ЕСТЬNULL(ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник.НачальныйСтаж + РАЗНОСТЬДАТ(ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник.ДатаПриема, ДополнительныеНачисленияБазаОсновныеНачисления.БазовыйПериодНачало, ДЕНЬ) / 365, 0) КАК ТрудовойСтаж,
"РАЗНОСТЬДАТ(ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник.ДатаПриема, &КонецПериода, МЕСЯЦ) + ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник.СтажНаМоментПриема КАК ОбщийСтаж"
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(Дата));
Рассчитываю Стаж так:ПериодРегистрации тип какой?
РАЗНОСТЬДАТ(НачислениеЗарплатыДополнительныеНачисления.Сотрудник.ДатаПриема, &ПериодРегистрации, ГОД) + НачислениеЗарплатыДополнительныеНачисления.Сотрудник.НачСтаж
Но появляется ошибка: Неверные параметры РАЗНОСТЬДАТ
Почему?
Дата приема-дата. НачСтаж- число
НачалоМесяца(Дата)Рассчитываю Стаж так:ПериодРегистрации тип какой?
РАЗНОСТЬДАТ(НачислениеЗарплатыДополнительныеНачисления.Сотрудник.ДатаПриема, &ПериодРегистрации, ГОД) + НачислениеЗарплатыДополнительныеНачисления.Сотрудник.НачСтаж
Но появляется ошибка: Неверные параметры РАЗНОСТЬДАТ
Почему?
Дата приема-дата. НачСтаж- число
С виду всё правильно. dt дайНачалоМесяца(Дата)Рассчитываю Стаж так:ПериодРегистрации тип какой?
РАЗНОСТЬДАТ(НачислениеЗарплатыДополнительныеНачисления.Сотрудник.ДатаПриема, &ПериодРегистрации, ГОД) + НачислениеЗарплатыДополнительныеНачисления.Сотрудник.НачСтаж
Но появляется ошибка: Неверные параметры РАЗНОСТЬДАТ
Почему?
Дата приема-дата. НачСтаж- число
Пришлось сделать такое действие: сделать запрос недоделанным, то есть без этого поля, в параметрах запроса указать что Период регистрации - Это НачалоМесяца(Дата), зайти заново в запрос, и добавить уже это поле РАЗНОСТЬДАТ.С виду всё правильно. dt дайНачалоМесяца(Дата)Рассчитываю Стаж так:ПериодРегистрации тип какой?
РАЗНОСТЬДАТ(НачислениеЗарплатыДополнительныеНачисления.Сотрудник.ДатаПриема, &ПериодРегистрации, ГОД) + НачислениеЗарплатыДополнительныеНачисления.Сотрудник.НачСтаж
Но появляется ошибка: Неверные параметры РАЗНОСТЬДАТ
Почему?
Дата приема-дата. НачСтаж- число
Кто нибудь знает из-за чего может быть ошибка:воспользуйтесь отладчиком, посмотрите в наборе записей что пытаетесь записать. вероятнее всего, что-то не заполнено.
Запись не верна! Не задан вид расчета(Регистр расчета:Основные начисления; Номер строки:1)
Кто нибудь знает из-за чего может быть ошибка:
Запись не верна! Не задан вид расчета(Регистр расчета:Основные начисления; Номер строки:1)
кому интересно, моё решение первого билета.Сейчас занимался бизнес - процессами, обнаружил что нет формы и кнопки Обновить маршрут.
я кстати это нигде не делалкому интересно, моё решение первого билета.Сейчас занимался бизнес - процессами, обнаружил что нет формы и кнопки Обновить маршрут.
я кстати это нигде не делалкому интересно, моё решение первого билета.Сейчас занимался бизнес - процессами, обнаружил что нет формы и кнопки Обновить маршрут.
я кстати это нигде не делалкому интересно, моё решение первого билета.Сейчас занимался бизнес - процессами, обнаружил что нет формы и кнопки Обновить маршрут.
Друзья, а кто может подсказать почему не работает бизнес-процесс, не отрабатывает ветка кладовщик, буду очень благодарен, если укажете в чем дело.в режиме предприятие настроил регистр адресации правильно?
А у тебя отработало?Да, вот.
А полный цикл прошел?А у тебя отработало?Да, вот.
Да. По-моему БП всё прошло. правильно настроить нужно регистр адресации. (2 задачи по отгрузке т.к. 2 кладовщика у меня)А полный цикл прошел?А у тебя отработало?Да, вот.
Леонид, а можно попросить выложить dt?Да. По-моему БП всё прошло. правильно настроить нужно регистр адресации. (2 задачи по отгрузке т.к. 2 кладовщика у меня)А полный цикл прошел?А у тебя отработало?Да, вот.
Леонид, а можно попросить выложить dt?Да. По-моему БП всё прошло. правильно настроить нужно регистр адресации. (2 задачи по отгрузке т.к. 2 кладовщика у меня)А полный цикл прошел?А у тебя отработало?Да, вот.
Спасибо.
Леонид, а можно попросить выложить dt?Да. По-моему БП всё прошло. правильно настроить нужно регистр адресации. (2 задачи по отгрузке т.к. 2 кладовщика у меня)А полный цикл прошел?А у тебя отработало?Да, вот.
Спасибо
Спасибо.
Леонид, а можно попросить выложить dt?Да. По-моему БП всё прошло. правильно настроить нужно регистр адресации. (2 задачи по отгрузке т.к. 2 кладовщика у меня)А полный цикл прошел?А у тебя отработало?Да, вот.
Спасибо
Спасибо.
А последовательности нужно делать в решениях на экзамене?В рамках этого экзамена Последовательности реализовывать не нужно.
СпсА последовательности нужно делать в решениях на экзамене?В рамках этого экзамена Последовательности реализовывать не нужно.
СПР: Что означает фраза: "Значение оклада берется на начало расчетного периода". Это дата документа (регистратора) или период действия?в такой трактовке на начало месяца от даты документа.
Добрый день.Ну все по идее правильно, если у тебя был оклад 10 000 на начало месяца, а в конце тебе повысили его до 20 000, то и расчет должен на начало месяце быть 20 000.
Друзья можете посмотреть мое решение, я человек с не особым опытом программирования, буду рад любой обратной связи
Добрый день))Добрый день.Такое ощущение, как будто вы взяли чей то старый билет и выложили его сюда на проверку) Потому что формулы старые, как раньше делали, и не соблюдены некоторые условия. Вы точно брали АКТУАЛЬНЫЕ билеты?
Готовлюсь к экзамену, решил первый билет, просьба кто может дать по решению объективную критику.
Буду очень благодарен и признателен, большое спасибо
1. В документе "Начисление ЗП" - нет кнопки "Рассчитать"
2. Почему в общем модуле сделали всё в разных процедурах? Можно же в одной и Оклад и Премию рассчитывать.
3. В расходной накладной как по мне лучше не использовать конструкцию: МоментВремени = ?(Режим = РежимПроведенияДокумента.Оперативный, Неопределено,Новый Граница(МоментВремени(), ВидГраницы.Исключая));.. здесь уже это обсуждалось 2 дня назад.
4. Формулы для рассчета себестоимости не верны.
5. Удержания же вообще не нужны в этой задаче
В общем это первое что бросилось, в глаза. Детально не смотрела, тяжеловато читать ваш код))
кому интересно, моё решение первого билета.
кому интересно, моё решение первого билета.
Добрый день. Начинаю подготовку. Скачал первым же делом Ваш пример разработки. И тут же появились вопросы.
1. При входе в программу выдается сообщение. Что пользователь не найден что не много сразу напрягает. Не проще сразу такого прописывать?
ТекПользователь = Справочники.ФизическиеЛица.НайтиПоНаименованию(ИмяПользователя());
Если ТекПользователь=Неопределено Тогда
НовПользователь = Справочники.ФизическиеЛица.СоздатьЭлемент();
НовПользователь.Наименование = ИмяПользователя();
НовПользователь.Записать();
ТекПользователь = НовПользователь.Ссылка;
КонецЕсли;
ПараметрыСеанса.ТекущийПользователь = ТекПользователь;
2. Подскажите пожалуйста, правильно ли я думаю, что при том условии что в первом билете "И услуги и товары указываются в одной табличной части". Достаточно будет указать их в документе продажи?
3. А при проведении услуги можно не фиксировать движения?
Доброго времени суток, уважаемые коллеги! Прошу оценить решение задачи из первого билета. Просто реализовал приход и расход. Сделал только эту часть. Хотелось бы знать, насколько верная идея. Сдавал и получил два - решал на одном регистре. Преподаватель сказал, что решается на двух. Собственно, прошу оценить подход. Блокировки и всякие плюшки не делал.Смотрите вы остатки проверяете по регистру с себестоимостью, по всем остаткам. А необходимо их контролировать по складу документа. то есть по остаткам в другом регистре.
Доброго времени суток, уважаемые коллеги! Прошу оценить решение задачи из первого билета. Просто реализовал приход и расход. Сделал только эту часть. Хотелось бы знать, насколько верная идея. Сдавал и получил два - решал на одном регистре. Преподаватель сказал, что решается на двух. Собственно, прошу оценить подход. Блокировки и всякие плюшки не делал.Смотрите вы остатки проверяете по регистру с себестоимостью, по всем остаткам. А необходимо их контролировать по складу документа. то есть по остаткам в другом регистре.
Это задача решается применением новой методики проведения для регистра ОстаткиНоменклатуры, а затем уже старой методики для регистра СебестоимостьНоменклатуры.
Мысль в принципе верная, но необходимо еще добавить новую методику для регистра ОстаткиНоменклатуры до Вашего кода.
И очищать наборы записей не нужно. Они и так будут пустые.
Не всё норм) Не слушаете меня, а зря)Доброго времени суток, уважаемые коллеги! Прошу оценить решение задачи из первого билета. Просто реализовал приход и расход. Сделал только эту часть. Хотелось бы знать, насколько верная идея. Сдавал и получил два - решал на одном регистре. Преподаватель сказал, что решается на двух. Собственно, прошу оценить подход. Блокировки и всякие плюшки не делал.Смотрите вы остатки проверяете по регистру с себестоимостью, по всем остаткам. А необходимо их контролировать по складу документа. то есть по остаткам в другом регистре.
Это задача решается применением новой методики проведения для регистра ОстаткиНоменклатуры, а затем уже старой методики для регистра СебестоимостьНоменклатуры.
Мысль в принципе верная, но необходимо еще добавить новую методику для регистра ОстаткиНоменклатуры до Вашего кода.
И очищать наборы записей не нужно. Они и так будут пустые.
Внес нужные изменения, вроде теперь норм....прошу повторно оценить решение.
Не всё норм) Не слушаете меня, а зря)Доброго времени суток, уважаемые коллеги! Прошу оценить решение задачи из первого билета. Просто реализовал приход и расход. Сделал только эту часть. Хотелось бы знать, насколько верная идея. Сдавал и получил два - решал на одном регистре. Преподаватель сказал, что решается на двух. Собственно, прошу оценить подход. Блокировки и всякие плюшки не делал.Смотрите вы остатки проверяете по регистру с себестоимостью, по всем остаткам. А необходимо их контролировать по складу документа. то есть по остаткам в другом регистре.
Это задача решается применением новой методики проведения для регистра ОстаткиНоменклатуры, а затем уже старой методики для регистра СебестоимостьНоменклатуры.
Мысль в принципе верная, но необходимо еще добавить новую методику для регистра ОстаткиНоменклатуры до Вашего кода.
И очищать наборы записей не нужно. Они и так будут пустые.
Внес нужные изменения, вроде теперь норм....прошу повторно оценить решение.
За использование менее эффективной методики проведения для регистра ОстаткиНоменклатуры Вам снимут баллы на экзамене.
Что мешает использовать новую методику?
И что за сортировка по дате и ссылке? Используйте сортировку по Моменту времени документа.
Сортировка по дате и ссылке сделана на основе опыта предыдущей сдачи. Преподаватель так сказал. Про методику проведения я понял - переделаю. Но вообще правильный подход к решению задачи? Или ошибка только в неоптимальном проведении?Момент времени это и есть комбинация даты и ссылки.
Сортировка по дате и ссылке сделана на основе опыта предыдущей сдачи. Преподаватель так сказал. Про методику проведения я понял - переделаю. Но вообще правильный подход к решению задачи? Или ошибка только в неоптимальном проведении?Момент времени это и есть комбинация даты и ссылки.
Подход в целом правильный, но за использование новой методики вместо старой попадаете на ошибку "Использование менее эффективной методики проведения документов". Карают на 1 балл.
Прикладываю своё решение данного билета. Жду критики,коллеги
Добрый день. Посмотрел несколько решений и ни в одном в ПР никто не использует подразделение. В задаче условие: "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается". Соответствено в регистрах должно появится измерение Подразделение, а через регистр сведений нужно реализовать чтобы не было совместительства. Поделитесь опытом пожалуйста как кто трактует условие про подразделение ?
Добрый день. Посмотрел несколько решений и ни в одном в ПР никто не использует подразделение. В задаче условие: "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается". Соответствено в регистрах должно появится измерение Подразделение, а через регистр сведений нужно реализовать чтобы не было совместительства. Поделитесь опытом пожалуйста как кто трактует условие про подразделение ?
Это условие трактуется однозначно — измерения "Подразделение" в регистрах расчета быть НЕ ДОЛЖНО! Далее смотрим, если в отчете есть колонка "Подразделение", то добавляем реквизит "Подразделение" в регистры расчета.
Добрый день. Посмотрел несколько решений и ни в одном в ПР никто не использует подразделение. В задаче условие: "Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается". Соответствено в регистрах должно появится измерение Подразделение, а через регистр сведений нужно реализовать чтобы не было совместительства. Поделитесь опытом пожалуйста как кто трактует условие про подразделение ?
Это условие трактуется однозначно — измерения "Подразделение" в регистрах расчета быть НЕ ДОЛЖНО! Далее смотрим, если в отчете есть колонка "Подразделение", то добавляем реквизит "Подразделение" в регистры расчета.
В задаче четко указано что работники работают по подразделениям, но каждый работник может одновременно работать в одном подразделении. Преподаватель вас попросит продемонстрировать механизм не возможности работать в двух подразделениях как вы это сделаете ?
Преподаватель вас попросит продемонстрировать механизм не возможности работать в двух подразделениях как вы это сделаете ?1. Платформа контролировать сей механизм не умеет.
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?Все так делают, потому что Белоусов требует решать ее именно так чтобы получить зачет. Скачай его курс на торрентах (около 300р.) и посмотри.
Прорешал первый билет.
Прошу посмотреть правильность решения
ОУ
1. Регистр "ОстаткиНоменклатуры" не установлен режим разделения итогов.
2. В приходной накладной не обработаны дубли при проведении.
3. В приходной накладной на склад приходуются услуги.
4. В отчете "Остатки товаров" ресурс "Количество" не нужен. (Группировки: Склад, Детальные записи)
5. Добавлять секунду к дате отчета — это ошибка. Движения НА дату отчета включаться НЕ должны. Представьте бухгалтер сделал баланс на 1 апреля. А у него остатки начинают изменяться. Он начнет искать кто задним числом документы перепроводит, а оказывается это программист прикололся: движения за 1 апреля в остатки на 1 апреля включил.
ПР
1. Если в задаче явно не сказано, что пользователь сам вносит значение оклада в документ Начисления з/п, то значение оклада надо получать из регистра, а не из табличной части.
2. Получение процента премии надо делать в запросе исходя из даты приема на работу.
Дальше не смотрел. Будет время, гляну.
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?Все так делают, потому что Белоусов требует решать ее именно так чтобы получить зачет. Скачай его курс на торрентах (около 300р.) и посмотри.
Если вкратце, то таким способом решается т.н. "проблема копеек": если списываем столько сколько осталось в партии, то себестоимость не рассчитываем.
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?Все так делают, потому что Белоусов требует решать ее именно так чтобы получить зачет. Скачай его курс на торрентах (около 300р.) и посмотри.
Если вкратце, то таким способом решается т.н. "проблема копеек": если списываем столько сколько осталось в партии, то себестоимость не рассчитываем.
Проблема копеек возникает из-за того, что сначала в формуле деление, потом умножение. Достаточно переписать так, чтобы сначала шло умножение, а потом - деление:
Себестоимость = Списать*Выборка.СуммаОст/Выборка.КолОст;
2. Почему для списания себестоимости большинство людей даже здесь в теме пишут Что Себестоимость = ?(Списать = Выборка.КолОст, Выборка.СуммаОст, Списать/Выборка.КолОст*Выборка.СуммаОст), т.е. вычисляют цифру уже в цикле по срокам годности ? По условию задачи необходимо получить себестоимость по всем срокам годности. т.е. когда в группировках где мы получаем СУММА(КолОст) и СУММА(СуммаОст) - результат их деления и будет СреднейСебестоимостью, которая впоследствии умножится на количество к списанию ?Все так делают, потому что Белоусов требует решать ее именно так чтобы получить зачет. Скачай его курс на торрентах (около 300р.) и посмотри.
Если вкратце, то таким способом решается т.н. "проблема копеек": если списываем столько сколько осталось в партии, то себестоимость не рассчитываем.
Проблема копеек возникает из-за того, что сначала в формуле деление, потом умножение. Достаточно переписать так, чтобы сначала шло умножение, а потом - деление:
Себестоимость = Списать*Выборка.СуммаОст/Выборка.КолОст;
А я до сих пор не согласен.
К примеру продаем мы алмазов в граммах (весь остаток) 0.4874834375473642438245553331
Себестоимость списания = 0.4874834375473642438245553331 / 0.4874834375473642438245553331 * Стоимость.
Что имеем? 1 в результате деления. И умножая единицу на любую стоимость получаем полную стоимость. Без проблемы последней копейки.
ПР
1. Запросом же беру с регистра по кнопке рассчитать, на форме просто выведен реквизит, надо убрать его?
2. Тоже запросом делаю дата регистрации - дата приема + начальный стаж сотрудника, исходя из полученного стажа беру процент
Разобрался. Зачем так сложно? На экзамене время дорого. Можно сделать гораздо проще.
1. Набор записей формируем в обработчике
&НаСервере
Процедура РассчитатьНаСервере()
….
2. Обращаемся к процедуре общего модуля Расчет
3. Загружаем движения
4. Очищаем движения
1. Набор записей также формируем запросом, как и у меня
2. Записываем этот набор записей. В вашем варианте этот пункт не написан, это не обязательное действие, чтобы обращаться к виртуальным таблицам регистра? или это входит в пункт создаем набор записей?
3. Выполняем расчет в общем модуле и заполняем табличные части документы
4. Очищаем движения
5. Возвращаем полученный результат на форму
&НаСервере
Процедура РассчитатьНаСервере()
ТекДокумент = РеквизитФормыВЗначение("Объект");
Движения = ТекДокумент.Движения;
// регистр ОсновныеНачисления
Движения.ОсновныеНачисления.Записывать = Истина;
Для Каждого ТекСтрокаОсновныеНачисления Из Объект.ОсновныеНачисления Цикл
Движение = Движения.ОсновныеНачисления.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета = ТекСтрокаОсновныеНачисления.ВидРасчета;
Движение.ПериодДействияНачало = ТекСтрокаОсновныеНачисления.ПериодДействияНачало;
Движение.ПериодДействияКонец = ТекСтрокаОсновныеНачисления.ПериодДействияКонец;
Движение.ПериодРегистрации = Объект.Дата;
Движение.Сотрудник = ТекСтрокаОсновныеНачисления.Сотрудник;
Движение.График = ТекСтрокаОсновныеНачисления.График;
КонецЦикла;
// регистр ДополнительныеНачисления
Движения.ДополнительныеНачисления.Записывать = Истина;
Для Каждого ТекСтрокаДополнительныеНачисления Из Объект.ДополнительныеНачисления Цикл
Движение = Движения.ДополнительныеНачисления.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета = ТекСтрокаДополнительныеНачисления.ВидРасчета;
Движение.ПериодРегистрации = Объект.Дата;
Движение.БазовыйПериодНачало = НачалоМесяца(Объект.Дата);
Движение.БазовыйПериодКонец = КонецМесяца(Объект.Дата);
Движение.Сотрудник = ТекСтрокаДополнительныеНачисления.Сотрудник;
КонецЦикла;
ТекДокумент.Записать();
ЗначениеВРеквизитФормы(ТекДокумент, "Объект");
РаботаСДанными.Расчет(ТекДокумент.Ссылка, Движения);
Объект.ОсновныеНачисления.Загрузить(Движения.ОсновныеНачисления.Выгрузить());
Объект.ДополнительныеНачисления.Загрузить(Движения.ДополнительныеНачисления.Выгрузить());
Движения.ОсновныеНачисления.Очистить();
Движения.ДополнительныеНачисления.Очистить();
Движения.ОсновныеНачисления.Записать();
Движения.ДополнительныеНачисления.Записать();
КонецПроцедуры
&НаКлиенте
Процедура Рассчитать(Команда)
РассчитатьНаСервере();
КонецПроцедуры
Процедура Расчет(Ссылка, Движения) Экспорт
//Расчет по ОКЛАДУ
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОсновныеНачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки,
| ОсновныеНачисленияДанныеГрафика.Сотрудник КАК Сотрудник,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия, 0) КАК Норма,
| ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия, 0) КАК Факт
|ПОМЕСТИТЬ ДанныеГрафика
|ИЗ
| РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
| Регистратор = &Ссылка
| И ВидРасчета = &Оклад) КАК ОсновныеНачисленияДанныеГрафика
|
|ИНДЕКСИРОВАТЬ ПО
| Сотрудник
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(СведенияОСотрудникахСрезПоследних.Оклад, 0) КАК Размер,
| ДанныеГрафика.НомерСтроки КАК НомерСтроки,
| ДанныеГрафика.Норма КАК Норма,
| ДанныеГрафика.Факт КАК Факт
|ИЗ
| ДанныеГрафика КАК ДанныеГрафика
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках.СрезПоследних(
| &Нач,
| Сотрудник В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеГрафика.Сотрудник КАК Сотрудник
| ИЗ
| ДанныеГрафика КАК ДанныеГрафика)) КАК СведенияОСотрудникахСрезПоследних
| ПО ДанныеГрафика.Сотрудник = СведенияОСотрудникахСрезПоследних.Сотрудник";
Запрос.УстановитьПараметр("Нач", НачалоМесяца(Ссылка.Дата));
Запрос.УстановитьПараметр("Оклад", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаОклад = РезультатЗапроса.Выбрать();
Для каждого СтрНабора Из Движения.ОсновныеНачисления Цикл
Если СтрНабора.ВидРасчета <> ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
Продолжить;
КонецЕсли;
ВыборкаОклад.Сбросить();
ВыборкаОклад.НайтиСледующий(СтрНабора.НомерСтроки, "НомерСтроки");
СтрНабора.Результат = ?(ВыборкаОклад.Норма = 0, 0, ВыборкаОклад.Размер / ВыборкаОклад.Норма * ВыборкаОклад.Факт);
СтрНабора.Размер = ВыборкаОклад.Размер;
СтрНабора.Факт = ВыборкаОклад.Факт;
КонецЦикла;
Движения.ОсновныеНачисления.Записать(, Истина);
//Расчет по ПРЕМИИ
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТН.Стаж КАК ТН_Граница,
| МИНИМУМ(ЕСТЬNULL(ТВ.Стаж, 99)) КАК ТВ_Граница,
| ТН.Процент КАК Процент
|ПОМЕСТИТЬ ТаблСтажа
|ИЗ
| РегистрСведений.ШкалаСтажа КАК ТН
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШкалаСтажа КАК ТВ
| ПО ТН.Стаж < ТВ.Стаж
|
|СГРУППИРОВАТЬ ПО
| ТН.Стаж,
| ТН.Процент
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДополнительныеНачисленияБазаОсновныеНачисления.НомерСтроки КАК НомерСтроки,
| ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник КАК Сотрудник,
| ДополнительныеНачисленияБазаОсновныеНачисления.РезультатБаза КАК РезультатБаза,
| ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник.ДатаПриема КАК ДатаПриема,
| ДополнительныеНачисленияБазаОсновныеНачисления.БазовыйПериодНачало КАК ПериодНачало,
| ВЫРАЗИТЬ((РАЗНОСТЬДАТ(ДополнительныеНачисленияБазаОсновныеНачисления.Сотрудник.ДатаПриема, ДополнительныеНачисленияБазаОсновныеНачисления.БазовыйПериодНачало, МЕСЯЦ) + 1) / 12 - 0.5 КАК ЧИСЛО(10, 0)) КАК СтажРаботы
|ПОМЕСТИТЬ ДанныеБазы
|ИЗ
| РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления(
| &Измерение,
| &Измерение,
| ,
| Регистратор = &Ссылка
| И ВидРасчета = &Премия) КАК ДополнительныеНачисленияБазаОсновныеНачисления
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДанныеБазы.НомерСтроки КАК НомерСтроки,
| ДанныеБазы.РезультатБаза КАК РезультатБаза,
| ДанныеБазы.СтажРаботы КАК Стаж,
| ТаблСтажа.Процент КАК Процент
|ИЗ
| ТаблСтажа КАК ТаблСтажа,
| ДанныеБазы КАК ДанныеБазы
|ГДЕ
| ДанныеБазы.СтажРаботы >= ТаблСтажа.ТН_Граница
| И ДанныеБазы.СтажРаботы < ТаблСтажа.ТВ_Граница";
Измерение = Новый Массив;
Измерение.Добавить("Сотрудник");
Запрос.УстановитьПараметр("Измерение", Измерение);
Запрос.УстановитьПараметр("Премия", ПланыВидовРасчета.ДополнительныеНачисления.Премия);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаПремия = РезультатЗапроса.Выбрать();
Для каждого СтрНабора Из Движения.ДополнительныеНачисления Цикл
Если СтрНабора.ВидРасчета <> ПланыВидовРасчета.ДополнительныеНачисления.Премия Тогда
Продолжить;
КонецЕсли;
ВыборкаПремия.Сбросить();
ВыборкаПремия.НайтиСледующий(СтрНабора.НомерСтроки, "НомерСтроки");
СтрНабора.Результат = ВыборкаПремия.РезультатБаза * ВыборкаПремия.Процент / 100;
СтрНабора.Процент = ВыборкаПремия.Процент;
СтрНабора.Стаж = ВыборкаПремия.Стаж;
СтрНабора.Размер = ВыборкаПремия.РезультатБаза;
КонецЦикла;
Движения.ДополнительныеНачисления.Записать();
КонецПроцедуры
Здравствуйте. Если у кого будет время посмотрите пожалуйста
Движение.Сумма = ?(Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоОстаток,
ВыборкаДетальныеЗаписи.СуммаОстаток,
ВыборкаДетальныеЗаписи.Суммаостаток / ВыборкаДетальныеЗаписи.КоличествоОстаток * Движение.Количество);
конструкцию:Движение.Сумма = Движение.Количество / ВыборкаДетальныеЗаписи.КоличествоОстаток * ВыборкаДетальныеЗаписи.Суммаостаток
Результат будет тот же, код меньше. Но это на Ваше усмотрение.Здравствуйте. Если у кого будет время посмотрите пожалуйста
Пробежал глазами по решению.
Если списание товаров должно быть организовано по партиям, это значит что нужен отдельный регистр накопления ПартииТоваров или можно обойтись одним ОстаткиТоваров, в котором будет и ресурс сумма и измерение партия, объясните пожалуйста данный вопросЗдесь нужно 2 регистра накопления, потому что себестоимость надо расчитывать по всей номенклатуре. Применять надо для записи в регистр остатков старую методику проведения, то есть сначала записать, а потом проверить, не ушли ли мы в минус.
На экзамене МВТ использовать НЕ НАДО. Плюсов вам за него не добавят, а время потратите. Используйте конструктор и не заморачивайтесь.
Я не знаток, но срок годности делаю "дата". Насколько знаю при решении такое допустимо, кто-то делает смотрел видео Чистова он там делает через справочник где заводит элементы по срокам годности, объясняя это тем что так более рационально использовать этот механизм, можешь посмотреть это видео находится в общем доступе.Примитивный тип в качестве типа субконто - не есть хорошо. Но в рамках экзамена допускается. Баллов за это не снимут.
Я не знаток, но срок годности делаю "дата". Насколько знаю при решении такое допустимо, кто-то делает смотрел видео Чистова он там делает через справочник где заводит элементы по срокам годности, объясняя это тем что так более рационально использовать этот механизм, можешь посмотреть это видео находится в общем доступе.Принимающие экзамен очень скептически относятся к любым источникам информации кроме своих курсов. Посмотрите курс Белоусова, я по нему подготовился и сдал вообще без проблем.
В билете в оперативном учете есть склад, а в бухгалтерском нет, а решение должно быть в одной конфигурации, как решается данный вопрос?Добавляете в документ реквизит "Склад" и используете его только при формировании движений по оперативному учету. В чем проблема то?
Здравствуйте. Если у кого будет время посмотрите пожалуйста
Пробежал глазами по решению.
Большое спасибо за замечания) Все исправлю. БП первый раз делал, так что понакосячил
Я посмотрел вашу задачу по ОУ.
Я сам только готовлюсь. Но разбор чужих решений полезен. Может и меня кто поправит)
Я не увидел решения списания ФИФО ЛИФО. Есть проверка да. Но где упорядочивание в запросе? По идее задача не решена.
Из того что еще увидел вы блокируете услуги. Не исключаете их в приходе. (как я понял когда решали считали что мы их будем подсчитывать). Но в расходе вы их убираете. И вообще с услугами в я не понял ваше решение. Где то есть они где то нет.
Группируете все по номенклатуре в приходе. То есть пользователь не может оприходовать ручку за 20 и ручку за 30. Не знаю правильно ли это.
Нет проверки на пустоту после запроса по себестоимости. Остатков на складе может и не быть. Выборка довольно сложная операция. Если запрос пустой зачем выбирать?
Нет форм для документов. Лучше было бы создать (для проверки вывести туда ссылки на регистры думаю вам экзаменатор спасибо скажет).
И в формах можно будет избавиться от 0 и пустоты при вводе пользователем.
В общем по ОУ все что заметил. С отчетом могу ошибаться но почему не надо ресурс рассчитывать по складу не понял.
Друзья, посмотрите, пожалуйста мое решение билета. Жду критики, спасибо.
Вопрос 1. Зачем вы делаете лишний пакет в первом запросе?. В вашем решении можно было бы обойтись одним.
Вопрос 2. Зачем индекс по номенклатуре в первом запросе? Вы нигде не вяжете по ней ничего.
Вопрос 3. А не лучше ли параметры задать во втором пакете чтобы не тащить их ?
Вопрос 4. Перед вторым запросом зачем дважды устанавливать маркер записи?
Вопрос 5. В блокировку попадают услуги?.
Вопрос 6. Вы забыли отобрать конкретный документ для себестоимости и будете читать со всех документов.
Вопрос 7 Если товара не хватает вы не прерываете работу и считаете себестоимость. По идее вы проверяете достаточность выше. Не знаю насколько это грубая ошибка. Одни говорят надо проверять все регистры. Другие нет.
Вот все что увидел. Сам тоже готовлюсь
Вопрос 1. Зачем вы делаете лишний пакет в первом запросе?. В вашем решении можно было бы обойтись одним.
Вопрос 2. Зачем индекс по номенклатуре в первом запросе? Вы нигде не вяжете по ней ничего.
Вопрос 3. А не лучше ли параметры задать во втором пакете чтобы не тащить их ?
Вопрос 4. Перед вторым запросом зачем дважды устанавливать маркер записи?
Вопрос 5. В блокировку попадают услуги?.
Вопрос 6. Вы забыли отобрать конкретный документ для себестоимости и будете читать со всех документов.
Вопрос 7 Если товара не хватает вы не прерываете работу и считаете себестоимость. По идее вы проверяете достаточность выше. Не знаю насколько это грубая ошибка. Одни говорят надо проверять все регистры. Другие нет.
Вот все что увидел. Сам тоже готовлюсь
1. Первый пакет первого запроса делается в ОбработкеПроведения для получения временной таблицы ТЧСписокНоменклатуры, которая потом используется в запросе(отбор в условии виртуальной таблицы регистра по номенклатуре) на получение данных из РН ОстаткиНоменклатуры.
2. Индексация, потому что во втором запросе идет левое соединение по номенклатуре, где был отбор виртуальной таблицы по номенклатуре из ТЧСписокНоменклатуры.
3. Точно не знаю, но я думаю, что лучше подготовить поля ВТ перед помещением в хранилище, а потом просто выбрать. Но не знаю как было бы правильнее.
4. При запросе к РН Себестоимость? Потому что при перепроведении(со сдвигом даты вперед) будут учитываться старые движения документа, а так очищаем старые движения таким методом. Старая методика.
5. Да, блокировку по ВидуНоменклатуры не установил. А если ее не ставить, будет ли это ошибкой(не только для экзамена, но и в практике), ведь никакого учета по данному виду товара в РН Себестоимость не ведётся? Было бы интересно.
6. Да, ошибка. Забыл сделать отбор по регистратору ТЧ документа. Спасибо)
7. Точно, забыл установить "Отказ = Истина" в условии и "Продолжить". Вообще везде говорят, что нужно во всех регистрах проверять на отрицательные остатки. Вроде даже сам Белоусов такое говорил.
Спасибо за оценку. Надо быть внимательнее. :)
1. Я вижу что вы делаете. Вопрос в том насколько это рационально. Почему вы не сделали пакет один и не использовали ВыполнитьПакет(). А сделали именно два пакета, вопрос задаст экзаменатор? Я конечно не знаю, может и не задаст хз, но у меня в голове первый вопрос...если я пишу лишний пакет то зачем он мне нужен. Я в своем решении допустим это делал для того чтобы получить сгруппированную таблицу без услуг которая ушла как источник данных для блокировки. Чтобы не блокировать лишние записи. У вас идет блокировка ТЧ полной. Зачем вам тут второй пакет?
3. Я не знаю как правильно. Но если можно не помещать в ВТ лишние поля то зачем это делать. Вы же ее дальше используете это же не разовая операция и везде будут эти поля. Опять же я не говорю что так делать нельзя. Это то что я бы сделал иначе
7. Я не знаю как правильно. Я бы проверял все. Тем более если Белоусов говорит.
Опять же все что я заметил это мои личные вопросы. Если у вас есть правильные ответы на них то тогда хорошо. Может вам никто их и не задаст.
У меня к Вам вопрос, зачем не проверенное решение выкладывать на форум? Если бы вы хоть раз запустили предприятие создали пару документов вы бы увидели что неправильно работает ваш код. И нашли бы сами эти ошибки по невнимательности. Такие ошибки находятся сразу.
Начал подготовку к экзамену, удалось решить первый билет,сам тоже сижу прорешиваю Расчетные задачи, судя по моей версии Актуальных билетов, в билете 1 вроде как нет необходимости разбивать оклад на части в течении расчетного периода, то бишь оклад надо брать лишь на начало расчетного периода из документа, получается сильно усложнили решение
если есть у кого возможность, оцените решение.
Жду конструктивной критики.
по-моему в этом билете в задаче ОУ неоднозначная постановка задачи. С одной стороны нужно вести складской учет, с другой стороны - себестоимость нужно считать по партиям независимо от того на каком складе есть товар.
Проверьте какие флажки выбраны или сняты в предопределенных счетах. и в конфигураторе , и в 1с.В конфигураторе на одном субконто, в 1С - на обоих. Это расчет себестоимости по номенклатуре (первое субконто) без учета срока годности (второе), так что признак нужен.