Автор Тема: Актуальные билеты  (Прочитано 620535 раз)

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

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Актуальные билеты
« Ответ #15 : Август 29, 2013, 07:03:00 pm »
sergejandreev, Можно и без РН обойтись, сразу писать продажу в РР.

sergejandreev

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей Андреев
Актуальные билеты
« Ответ #16 : Август 29, 2013, 07:44:42 pm »
А если также сказано "данные за разные расчетные периоды" и оклад может устанавливаться ежедневно, но берется на начало расчетного периода? Тогда ведь не получится воспользоваться виртуальной таблицей регистра сведений  sad     Посмотрел, как решали коллеги, которые уже сдали на специалиста, многие просто игнорируют эту строку и сдают. Некоторые даже на 5 smile      Вообще считаю, что составители билетов, зря эту строку выдумали biggrin
« Последнее редактирование: Август 29, 2013, 08:05:09 pm от Сергей Андреев »


GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Актуальные билеты
« Ответ #17 : Август 29, 2013, 08:30:05 pm »
sergejandreev, На начало расчетного периода, это значит что датой среза в регистре сведений будет ПериодРегистрации. Вообще в задачах нигде не сказано, что это должна автоматом делать программа. Достаточно создать регистр сведений, а в документе данные вводить руками.

Lada_k

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Лада
Актуальные билеты
« Ответ #18 : Август 30, 2013, 07:40:05 am »
Билет №2, бухгалтерский учет. При распределении по товарам затраты распределяются пропорционально их проданному количеству. Считается что все затраты должны быть отнесены в счет продаж текущего дня.
 То есть получается что затраты могут быть введены раньше чем продажи.
 Добавила субконто Номенклатура и Проекты к счету Покупатели, субконто Проекты к счету Общехозяйственные затраты. Распределение по количеству проданного делаю уже в самом отчете Продажи за период. Это правильно? Немного смущает учет у покупателей по проектам и номенклатуре.

vadimugatu

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Вадим
Актуальные билеты
« Ответ #19 : Август 30, 2013, 08:12:24 am »

Цитата
sergejandreev, Можно и без РН обойтись, сразу писать продажу в РР.
 Дмитрий Гончаров из УЦ3 говорил, что в таких задачах необходимо использовать оборотный РН а не РР. Использование РР будет серьезной ошибкой, тк в РР должны быть данные только по расчетам. Согласен, что РР это удобно, и вроде как перерасчеты будут сами отрабатывать, но всетаки это ошибка. Поэтому для меня вопрос остается открытым, как при таких услових обратится к оборотам РН за разные расчетные периоды.

nskripka

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Николай
Актуальные билеты
« Ответ #20 : Август 30, 2013, 11:33:49 am »
Как я понял товарища Гончарова, если не нужно перерасчетов, тогда пишем из оборотного регистра Продажи результат в регистр расчета, проведя вычисление процента. Если же нужны перерасчеты в случае изменения продаж задним числом, то лучше делать уже начисление продажи в регистре расчета, чтобы механизм перерасчетов работал сам.
 Запрос можно построить без цикла так: в виртуальную таблицу передаю минимальную и максимальную дату регистрации из табличной части, периодичность месяц, подразделение в списке подразделений табличной части. Далее выборка данных из таблицы документа, соединение с таблицей оборотов с условием, расчет премии процентом. Правда это будет неэффективно в случае большого разброса дат периода регистрации. Плохой метод. Второй вариант - это формирование текста запроса при обработке результатов первого запроса к табличной части. Далее уже выборка данных из этих двух таблиц. Сделаю по второму варианту.
« Последнее редактирование: Август 30, 2013, 02:32:21 pm от Николай »

vadimugatu

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Вадим
Актуальные билеты
« Ответ #21 : Август 30, 2013, 12:32:34 pm »
Вобщем решил примерно так, не супер конечно, но все работает. 5 билет без БП.
Вложения:
5_VadimUgatu.dt

Fruit83

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Актуальные билеты
« Ответ #22 : Август 30, 2013, 01:43:25 pm »
Цитата (nskripka)
Как я понял товарища Гончарова, если не нужно перерасчетов, тогда пишем из оборотного регистра Продажи результат в регистр расчета, проведя вычисление процента.
 Да.
 
Цитата (nskripka)
Если же нужны перерасчеты в случае изменения продаж задним числом, то лучше делать уже начисление продажи в регистре расчета, чтобы механизм перерасчетов работал сам.

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

 КонецПроцедуры


 Так указано в книге "Проф. разработка в системе "1С:Предприятие 8"".


GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Актуальные билеты
« Ответ #23 : Август 30, 2013, 01:52:10 pm »
Цитата (vadimugatu)
Дмитрий Гончаров из УЦ3 говорил

 А я вот не соглашусь. Лабать еще одну промежуточную таблицу? Да и какую смысловую нагрузку она несет? Регистры хранят показатели. Так как показатель оборотов очень похож на показатель базы можно конечно и путать эти регистры, но в расчетных задачах намного эффективнее и правильнее показатели базы не пытаться имитировать на оборотных регистрах, а хранить в регистрах расчета. Подумайте, ведь для каких-то целей регистры расчета без периода действия и базового периода можно создавать.

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Актуальные билеты
« Ответ #24 : Август 30, 2013, 01:57:08 pm »
Добавлю: Конечно если нужны отчеты по продажам в различных разрезах, то РН нужен.

nskripka

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Николай
Актуальные билеты
« Ответ #25 : Август 30, 2013, 03:11:41 pm »
Цитата (Fruit83)
Нет. В обработке проведения документа, который регистрирует продажи вызываем процедуру
  Это понятно. Я это знаю, знаю этот код. Знает естественно и Гончаров.

 Только этот код можно доработать. В реальности нужно добавлять в таблицу перерасчета изменившиеся записи, то есть считать разницу до и после проведения (иначе открыв,  просмотрев, закрыв документ по кнопке "ок" без изменений, будут формироваться лишние строки в таблице перерасчетов), далее всю эту процедуру можно перенести в модуль набора записей регистра, чтобы этот код отрабатывал независимо от документа продажи (а также если будет сделан другой документ, который изменяет регистр продаж, или же запущена другая обработка).
 Здесь есть одна особенность, что приходится в запросе самому определять виды и периоды расчета на которые может повлиять это изменение (например, многоуровневые премии, премии за квартал, год) и самому приходится обрабатывать всю логику зависимых расчетов. Но главное, что в рабочих конфигурациях пользователь сам может задавать свои виды начислений, периоды их действия, выбирать алгоритмы расчета и приоритет, выбирать базовые виды расчета, указывать зависимые виды расчета. А значит, что учесть все это в запросе становится нереальным и ненужным делом. Лучше всего, чтобы записи перерасчета добавляла сама система.

 В реальных билетах таких задач нет, со слов Дмитрия.

Fruit83

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Актуальные билеты
« Ответ #26 : Август 30, 2013, 05:41:00 pm »
Цитата (nskripka)
Это понятно. Я это знаю, знаю этот код. Знает естественно и Гончаров.
Вы бы маякнули, что знаете этот код и уже забраковали.:) Просто в книге уверенно так говорится о правомерности такого когда, что и  трудно сомневаться. 
 Решения Павла с помощью РР я видел и мне оно понравилось. А тут оказывается Гончаров говорит: использование РР будет серьезной ошибкой, тк в РР должны быть данные только по расчетам. Хочется определенности.:)

nskripka

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Николай
Актуальные билеты
« Ответ #27 : Август 30, 2013, 10:05:17 pm »
Видимо, мы не поняли друг друга. Скажу только то, что сам знаю  и видел.

 У меня была задача по расчетам, в который была премия от продаж процентом, никаких перерасчетов в билете не было. Решение смотрел товарищ Гончаров.
 Премия у меня была в отдельном регистре расчета без базы и периода действия. Делал запрос по нужным сотрудникам по оборотному регистру продаж, сразу считал премию и заносил в регистр расчета. Расчет регистров расчета был естественно в документе начисление зарплаты. Собственно никакого расчета дальше не было, результат начисления Премия считался сразу при добавлении записи в регистре расчета, в самом запросе. Регистр Продажи у меня нужен был в решении, я уже не помню, я только добавил разрез по подразделению. Проверяющий никаких замечаний по этому поводу не сделал. Откуда я делаю вывод, что решение это хорошее.

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

 Надеюсь, я описал всё понятно.
« Последнее редактирование: Август 30, 2013, 10:08:55 pm от Николай »

Fruit83

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Актуальные билеты
« Ответ #28 : Август 31, 2013, 10:23:49 am »
nskripka, да, спасибо. Теперь понятно все.:)

sergejandreev

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей Андреев
Актуальные билеты
« Ответ #29 : Сентябрь 01, 2013, 03:09:08 pm »
nskripka, можешь еще раз разъяснить, для "особо одаренных". Получается, если сказано, что "В одном документе могут быть данные за разные расчетные периоды", то мы период регистрации выносим в табличную часть. Значит и значение оклада из РС мы должны считать соединениями к физической таблице, а не к виртуальной?Премия: В какой момент мы должны заносить данные в регистр расчета? При проведении документа "Расходная накладная" или "Начисление зарплаты"?