Автор Тема: Билет 5. Спец по платформе V8  (Прочитано 85177 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Sitk

  • Новичок
  • *
  • Сообщений: 9
  • ФИО: Константин
Re: Билет 5. Спец по платформе V8
« Ответ #195 : Октябрь 09, 2017, 07:02:54 am »
Как вам идея использовать третий регистр расчета Продажи, где фиксировать продажи при проведении Расходной накладной? Тогда сумма продаж будет являться чистой базой по этому регистру и кода получается меньше и красиво.

kvt500

  • Проверенный
  • ***
  • Сообщений: 159
  • ФИО: kvt500
Re: Билет 5. Спец по платформе V8
« Ответ #196 : Октябрь 09, 2017, 02:24:57 pm »
Как вам идея использовать третий регистр расчета Продажи, где фиксировать продажи при проведении Расходной накладной? Тогда сумма продаж будет являться чистой базой по этому регистру и кода получается меньше и красиво.
К сожалению экзамен давно превратился в "угадай что хотел от тебя автор задачи", и ваше красиво никого не интересует.


Sitk

  • Новичок
  • *
  • Сообщений: 9
  • ФИО: Константин
Re: Билет 5. Спец по платформе V8
« Ответ #197 : Октябрь 09, 2017, 02:43:58 pm »
То есть считаете в расчетной задаче здесь нужно строить запрос регистру бухгалтерии?

kvt500

  • Проверенный
  • ***
  • Сообщений: 159
  • ФИО: kvt500
Re: Билет 5. Спец по платформе V8
« Ответ #198 : Октябрь 09, 2017, 02:47:41 pm »
То есть считаете в расчетной задаче здесь нужно строить запрос регистру бухгалтерии?
В задаче же четко сформулировано: "Сумма продаж по подразделению должна
быть получена по данным бухгалтерского учета".

xdd

  • Пользователь
  • **
  • Сообщений: 17
Re: Билет 5. Спец по платформе V8
« Ответ #199 : Октябрь 12, 2017, 02:47:31 pm »
Вопрос по расчетной задаче получить данные и рассчитать премию по даннным бу можно сразу в обработке проведения, зачем все делают расчет в общем модуле. это же лишнее действие для рр ДополнительныеНачисления?



ИначеЕсли эл.ВидРасчета = ПланыВидовРасчета.ДополнительныеНачисления.Надбавка Тогда
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УправленческийОборотыДтКт.Период КАК Период,
| УправленческийОборотыДтКт.Регистратор КАК Регистратор,
| УправленческийОборотыДтКт.СуммаОборот КАК СуммаОборот,
| УправленческийОборотыДтКт.Регистратор.Подразделение КАК РегистраторПодразделение
|ПОМЕСТИТЬ ВТ
|ИЗ
| РегистрБухгалтерии.Управленческий.ОборотыДтКт(&Нач, &Кон, Регистратор, СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Покупатели), , , , ) КАК УправленческийОборотыДтКт
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ.Период КАК Период,
| ВТ.Регистратор КАК Регистратор,
| ВТ.СуммаОборот КАК СуммаОборот,
| ВТ.РегистраторПодразделение КАК РегистраторПодразделение
|ИЗ
| ВТ КАК ВТ
|ГДЕ
| ВТ.РегистраторПодразделение = &РегистраторПодразделение";

Запрос.УстановитьПараметр("Кон", ДобавитьМесяц(КонецМесяца(ПериодРегистрации),-1));
Запрос.УстановитьПараметр("Нач", ДобавитьМесяц(НачалоМесяца(ПериодРегистрации),-1));
Запрос.УстановитьПараметр("РегистраторПодразделение", эл.Подразделение);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Выручка = 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Выручка =  ВыборкаДетальныеЗаписи.СуммаОборот;
КонецЦикла;

//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

Движение = Движения.ДополнительныеНачисления.Добавить();
Движение.Сотрудник = эл.Сотрудник;
Движение.Подразделение = эл.Подразделение;
Движение.ВидРасчета = эл.ВидРасчета;
Движение.ПериодРегистрации = ПериодРегистрации;
Движение.Процент = эл.Процент;
Движение.ПериодДействияНачало = НачалоМесяца(эл.ДатаНачала);
Движение.ПериодДействияКонец = КонецМесяца(эл.ДатаОкончания);
Движение.Результат =  эл.Процент/100*Выручка;
КонецЕсли;




Gdp_Zhora

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: Гаврусь Евгений Михайлович
Re: Билет 5. Спец по платформе V8
« Ответ #200 : Октябрь 12, 2017, 03:19:12 pm »
Вопрос по расчетной задаче получить данные и рассчитать премию по даннным бу можно сразу в обработке проведения, зачем все делают расчет в общем модуле. это же лишнее действие для рр ДополнительныеНачисления?

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

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

xdd

  • Пользователь
  • **
  • Сообщений: 17
Re: Билет 5. Спец по платформе V8
« Ответ #201 : Октябрь 12, 2017, 04:37:32 pm »
Вопрос по расчетной задаче получить данные и рассчитать премию по даннным бу можно сразу в обработке проведения, зачем все делают расчет в общем модуле. это же лишнее действие для рр ДополнительныеНачисления?

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

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

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

Gdp_Zhora

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: Гаврусь Евгений Михайлович
Re: Билет 5. Спец по платформе V8
« Ответ #202 : Октябрь 13, 2017, 12:06:40 pm »
Но в нашем случае записи нашего документа не влияют на результаты.
Следовательно в нашем случае такой код не является ошибкой, вопрос только в том, что скажет препод на экзамене.

А зачем тебе гадать? Сделай в отдельном модуле, да и всё

xdd

  • Пользователь
  • **
  • Сообщений: 17
Re: Билет 5. Спец по платформе V8
« Ответ #203 : Октябрь 13, 2017, 12:12:01 pm »
Но в нашем случае записи нашего документа не влияют на результаты.
Следовательно в нашем случае такой код не является ошибкой, вопрос только в том, что скажет препод на экзамене.

А зачем тебе гадать? Сделай в отдельном модуле, да и всё

Согласен, так и сделаю зачем нарываться =)

Semser

  • Пользователь
  • **
  • Сообщений: 12
Re: Билет 5. Спец по платформе V8
« Ответ #204 : Октябрь 16, 2017, 12:47:31 pm »
Предлагаю на обсуждение мое решение 5 билета (решал на время). 
есть некоторые отличия от сборника актуальных билетов:
1) На экзамена по ПР в билете было дополнительное условие "Если сотрудник опоздал на работу, то за каждые целые 15 минут опоздания начисляется штраф в размере 50 рублей", поэтому это условие включено в решение билета. В РС График работы рабочие часы поделены по 15 минут.
2) Получение объема продаж из Рег. Бухгалтерии  по подразделению выполнено через форму выбора Справочника "Подразделение". Такая методика используется в Задаче Примере со сборника задач 1С.

Буду всем благодарен за комментария и замечания.

kvt500

  • Проверенный
  • ***
  • Сообщений: 159
  • ФИО: kvt500
Re: Билет 5. Спец по платформе V8
« Ответ #205 : Октябрь 16, 2017, 02:16:20 pm »
Предлагаю на обсуждение мое решение 5 билета (решал на время). 
есть некоторые отличия от сборника актуальных билетов:
1) На экзамена по ПР в билете было дополнительное условие "Если сотрудник опоздал на работу, то за каждые целые 15 минут опоздания начисляется штраф в размере 50 рублей", поэтому это условие включено в решение билета. В РС График работы рабочие часы поделены по 15 минут.
2) Получение объема продаж из Рег. Бухгалтерии  по подразделению выполнено через форму выбора Справочника "Подразделение". Такая методика используется в Задаче Примере со сборника задач 1С.

Буду всем благодарен за комментария и замечания.

БУ:
При проведении документа должен производиться контроль наличия указанного в документе товара (по указанному инвентарному номеру).
Не работает.
« Последнее редактирование: Октябрь 16, 2017, 02:46:39 pm от kvt500 »

Semser

  • Пользователь
  • **
  • Сообщений: 12
Re: Билет 5. Спец по платформе V8
« Ответ #206 : Октябрь 17, 2017, 07:50:31 pm »
Предлагаю на обсуждение мое решение 5 билета (решал на время). 
есть некоторые отличия от сборника актуальных билетов:
1) На экзамена по ПР в билете было дополнительное условие "Если сотрудник опоздал на работу, то за каждые целые 15 минут опоздания начисляется штраф в размере 50 рублей", поэтому это условие включено в решение билета. В РС График работы рабочие часы поделены по 15 минут.
2) Получение объема продаж из Рег. Бухгалтерии  по подразделению выполнено через форму выбора Справочника "Подразделение". Такая методика используется в Задаче Примере со сборника задач 1С.

Буду всем благодарен за комментария и замечания.

БУ:
При проведении документа должен производиться контроль наличия указанного в документе товара (по указанному инвентарному номеру).
Не работает.

Круто, Большое спасибо! Точно не провел проверку на контроль отрицательных остатков. Выложил исправленный БУ РасходнаяНакладная

mariB

  • Пользователь
  • **
  • Сообщений: 17
Re: Билет 5. Спец по платформе V8
« Ответ #207 : Октябрь 30, 2017, 01:59:07 pm »
Решение билета №5.  Критика, альтернативы приветствуются.

Clition

  • Проверенный
  • ***
  • Сообщений: 222
Re: Билет 5. Спец по платформе V8
« Ответ #208 : Октябрь 30, 2017, 05:54:05 pm »
Решение билета №5.  Критика, альтернативы приветствуются.
В СПР есть дополнительное условие "Если сотрудник опоздал на работу, то за каждые целые 15 минут опоздания начисляется штраф в размере 50 рублей".

Hatfieldx

  • Пользователь
  • **
  • Сообщений: 32
Re: Билет 5. Спец по платформе V8
« Ответ #209 : Ноябрь 01, 2017, 08:41:37 pm »
Приветствую всех!

Решил задачу БУ без количественного ПУ и ПУ субконто. Ресурс Количество также не использовал. Посмотрел несколько решенных примеров - у всех признаки учета и ресурс количество добавлены. Зачем?

В условии задачи сказано, что инв номер уникален априори и количество всегда 1. Также ни в движениях ни в отчете количество нигде не фигурирует.

Запрос:
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.ИнвентарныйНомер КАК ИнвентарныйНомер,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма,
| МИНИМУМ(РасходнаяНакладнаяСписокНоменклатуры.НомерСтроки) КАК НомерСтроки
|ПОМЕСТИТЬ ДанныеДокумента
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| РасходнаяНакладнаяСписокНоменклатуры.ИнвентарныйНомер
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура,
| ИнвентарныйНомер
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| УправленческийОстатки.СуммаОстаток КАК СуммаОстаток,
| ВЫРАЗИТЬ(УправленческийОстатки.Субконто1 КАК Справочник.Номенклатура) КАК Номенклатура,
| ВЫРАЗИТЬ(УправленческийОстатки.Субконто2 КАК ЧИСЛО(10, 0)) КАК ИнвентарныйНомер
|ПОМЕСТИТЬ Остатки
|ИЗ
| РегистрБухгалтерии.Управленческий.Остатки(
| &МоментВремени,
| Счет = &Счет,
| &МассивСубконто,
| Субконто1 В
| (ВЫБРАТЬ
| ДанныеДокумента.Номенклатура
| ИЗ
| ДанныеДокумента КАК ДанныеДокумента)) КАК УправленческийОстатки
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура,
| ИнвентарныйНомер
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СУММА(Остатки.СуммаОстаток) КАК СуммаВсего,
| Остатки.Номенклатура КАК Номенклатура,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Остатки.ИнвентарныйНомер) КАК КоличествоВсего
|ПОМЕСТИТЬ ВТИтоги
|ИЗ
| Остатки КАК Остатки
|
|СГРУППИРОВАТЬ ПО
| Остатки.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДанныеДокумента.Номенклатура КАК Номенклатура,
| ДанныеДокумента.ИнвентарныйНомер КАК ИнвентарныйНомер,
| ДанныеДокумента.Номенклатура.Представление КАК НоменклатураПредставление,
| ДанныеДокумента.Сумма КАК СуммаПродаж,
| ЕСТЬNULL(Остатки.СуммаОстаток, 0) КАК СуммаОстаток,
| ДанныеДокумента.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВТИтоги.КоличествоВсего, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВТИтоги.СуммаВсего / ВТИтоги.КоличествоВсего
| КОНЕЦ КАК Себестоимость
|ИЗ
| ДанныеДокумента КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
| ПО ДанныеДокумента.Номенклатура = Остатки.Номенклатура
| И ДанныеДокумента.ИнвентарныйНомер = Остатки.ИнвентарныйНомер
| ЛЕВОЕ СОЕДИНЕНИЕ ВТИтоги КАК ВТИтоги
| ПО ДанныеДокумента.Номенклатура = ВТИтоги.Номенклатура";


Если сумма остаток = 0, значит на складе товара нет (преподнесение в дар товаров в задаче не оговаривается).

Подскажите, где я не прав? (Если ранее этот вопрос обсуждался - извиняюсь, недосмотрел)

Спасибо
« Последнее редактирование: Ноябрь 01, 2017, 09:32:51 pm от Hatfieldx »