Форум Чистова. Подготовка к экзаменам 1С

Аттестация "1С:Специалист" => Аттестация "1С:Специалист по платформе 1С:Предприятие 8.3 и 8.2" => Тема начата: Silverman от Июнь 03, 2010, 11:09:40 am

Название: Задача 1.07
Отправлено: Silverman от Июнь 03, 2010, 11:09:40 am
Всем привет. Прошу покритиковать мое решение. На мой взгляд слишком сложно все получается. Может кто предложит проще...
Вложения:
1.07.dt
Название: Задача 1.07
Отправлено: alice от Июль 08, 2010, 04:30:30 pm
Исходя из вышесказанного, на экзамене в этой задаче требуется в обработкепроведения только контролировать остаток по регистру остаткинаскладе, а для списания и расчета себестоимости для регистра остаткипопартиям нужно создать отдельную обработку. Я все сделала, согласно методике 1С.

Интересно, именно это нужно на экзамене и, опять же, не слишком громоздко получается для его (экзамена) формата? У кого какое мнение?

Решение прилагается:


Вложения:
1Cv8.dt
Название: Задача 1.07
Отправлено: BelousovKirill от Июль 09, 2010, 06:10:20 am
Приветствую вас коллеги)! Критиковать не буду но предложу такой вариант решения)).Думаю что на экзамене чем компактней текст тем лучше.
Вложения:
7132291.dt
Название: Задача 1.07
Отправлено: alice от Июль 12, 2010, 01:16:42 pm
По поводу решения BelousovKirill

1) Мне не понятно,зачем нужно накладывать блокировку (притом в исключительном режиме) на регистр Себестоимости. По-моему, если остатки контролируются только по Складам, то лишняя блокировка ни к чему.
 
 2) Перед выполнением запроса старые движения очищаются, так как на начало транзакции они могут быть в
 БД, но зачем их очищать методом очистить(), разве только записать() не достаточно?

3) Свойство - Записывать выбранные. Зачем нужно это:

Если Не Отказ Тогда
       Движения.ОстаткиНоменклатурыНаСкладах.Записывать = Истина;
       Движения.Себестоимость.Записывать = Истина;
       Движения.Продажи.Записывать = Истина;
    КонецЕсли;
 4) И самое главное:
 В этом решении не реализована новая методика, документ проводится по старой методике.

Название: Задача 1.07
Отправлено: BelousovKirill от Июль 12, 2010, 02:32:03 pm
Это всего лишь мой взгляд на решение)))!
Название: Задача 1.07
Отправлено: alice от Июль 12, 2010, 02:40:32 pm
Нет, ну я просто тоже не до конца понимаю смысл новой методики, тем более не понимаю, что нужно выдать на экзамене.
 Если раньше (до 8.2), меня ночью разбуди, я напишу проведение партионного или по средней не задумываясь, то теперь это несколько выбивает из колеи. И никто мне не может ответить на мои вопросы.
Название: Задача 1.07
Отправлено: BelousovKirill от Июль 12, 2010, 08:05:29 pm
Ответ на самом деле очень прост)) ,если можно в пределах условий для задачи использовать облегченную методику проведения то полный вперед), 1.07 же в свою очередь не подходит на мой взгляд так как отсутствует проверка наличия остатка при неоперативном проведении. А вы что думаете по этому поводу?
Название: Задача 1.07
Отправлено: alice от Июль 13, 2010, 09:13:13 am
Лично я ничего не думаю, мне преподаватель, который принимает экзамен объяснял эту методику, а когда начинаешь ему задавать вопросы более детально, он говорит, что сам не до конца это понимает, так как это нечто новое и есть лишь упоминание об этом в общих чертах в книгах Радченко, о том, что теперь существует такая возможность. Я у него спросила, а зачем это тогда требуют на экзамене. Он ответил, что на экзамене этого не будет или будет в каком-то "урезанном" варианте, после чего стало совсем не понятно.
 Здесь в каком-то посте выше описывали, что якобы в задаче 1.7 на экзамене указано, что нужно решать по-новому.
 По поводу оперативного/неоперативного проведения:
 контроль остатков надо производить всегда, просто при оперативном брать актуальные (рассчитанные) итоги,
 а при неоперативном на моментвремени документа, во всяком случае, я это так понимаю.
Название: Задача 1.07
Отправлено: napan от Июль 14, 2010, 01:31:02 pm
Это из нового задачника??? Можно текст задачи выложить?А если не трудно то задачник отсканировать или сфоткать плиз..
Название: Задача 1.07
Отправлено: alice от Июль 14, 2010, 01:55:07 pm
Нет, у меня нет нового задачника, по поводу этой задачи здесь на форуме она недавно кому-то попалась на экзамене и якобы там надо было делать таким образом, а может быть и нет - х. з. Пока не понятно, в общем.
Название: Задача 1.07
Отправлено: 1C_CoderVamp от Июль 20, 2010, 06:33:47 pm
alice,
 
Code
Запрос.УстановитьПараметр("Момент", ?(Режим = РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени()))

Прокомментируй пожалуйста, если я правильно понимаю, то в случае оперативного проведения остатки будут браться на 1С'овский день Х

Еще, у тебя в Расх.Накл применятеся новая методика проведения, тот вариант, который используешь ты взят из какого-то источника? Ему можно верить?

Название: Задача 1.07
Отправлено: alice от Июль 21, 2010, 09:12:37 am
Да - да, все верно, на 01.11.3999 г., рассчитанные итоги храняться помесячно и т.н. актуальные итоги, если брать остаток на момент времени берутся сначала остатки на конец ближайшего месяца по таблице итогов, а потом по таблице движений остаток досчитывается, тратятся ресурсы системы, если происходит оперативное проведение, то подходят актуальные (уже рассчитанные) итоги.

Все это, и сама методика, кот.использована в моем решении приводится в методическом пособии Учебного центра №3 "Решение оперативных задач", автор А. Габец.
 Я училась у него, но еще по 8.1, а сейчас есть его методика по 8.2, могу, кстати, скинуть, если что.

Название: Задача 1.07
Отправлено: 1C_CoderVamp от Июль 21, 2010, 10:27:08 am
Скинь плиз, буду очень признателен)) Кстати, я тоже у него учился и тоже по 8.1 и тоже в УЦ №3, но кое-что уже подзабыл, даже записи не помогают......
Название: Задача 1.07
Отправлено: 1C_CoderVamp от Июль 21, 2010, 02:13:56 pm
Это мой вариант, может кто взглянет....... wink

Добавлено (21.07.2010, 14:13)
---------------------------------------------
Да, там не реализован механизм списания услуг, не стал заморачиваться biggrin все и так знают что и как с этим делать


Вложения:
107_1CCoder.dt
Название: Задача 1.07
Отправлено: napan от Август 06, 2010, 11:16:18 am
Quote (1C_CoderVamp)
Это мой вариант, может кто взглянет.....

 
 В регистр Продажи надо Ресурс количество заводить, иначе в отчете количество услуг не увидешь!!!
Название: Задача 1.07
Отправлено: Zhora_Vlg от Август 21, 2010, 02:23:40 pm
Quote (1C_CoderVamp)
Это мой вариант, может кто взглянет

 Как быть с регламентным заданием в файловом варианте? Нужно ли это реализовывать.

Прошлые решения в этой ветке вообще без регламентного задания, это потому что в старом сборнике задача звучала по другому.

Вот новый вариант задачи.


Вложения:
1.7.bmp
Название: Задача 1.07
Отправлено: aworld от Август 21, 2010, 05:28:56 pm
alice, тоже буду признателен если скинешь методику. aworld      ЕСЛИ ВЫ ПОДЕЛИЛИСЬ СВОЕЙ ПОЧТОЙ, УДАЛИТЕ СООБЩЕНИЕ НЕМЕДЛЕННО ИЛИ БУДЕТЕ ЗАБАНЕНЫ. ЧИТАЙТЕ ПРАВИЛА!!!     mail.ru (на всякий happy )
Название: Задача 1.07
Отправлено: sv_mikh от Август 22, 2010, 12:57:08 pm
Quote (1C_CoderVamp)
Это мой вариант, может кто взглянет.......

Мне кажется будет правильнее:
 1. включить в движения регистр ОстаткиНоменклатуры
 2. перемещать последовательность..
 т.е. реагировать и на изменения в приходах.

Название: Задача 1.07
Отправлено: 1C_CoderVamp от Август 23, 2010, 10:49:44 am
Quote (Zhora_Vlg)
Как быть с регламентным заданием в файловом варианте? Нужно ли это реализовывать.

 отличие файлового варианта от клиент-серверного в данном случае в том, что в файловом варианте нужно самому вызывать обработчик регламентных заданий, а работают они абсолютно одинаково, поэтому реализовывать или нет смотри по времени, в любом случае делаются они быстро и лишним точно не будут wink
Название: Задача 1.07
Отправлено: alice от Август 23, 2010, 10:54:15 am
В принципе, регламентное задание можно сделать, то есть добавить в объекты конфигурации и создать для него процедуру в общем модуле, вызывающую выполнение обработки по списанию себестоимости, но если на экзамене файловый вариант, то какой в этом смысл. Какие знания этим проверяются? На мой взгляд, даже такое решение, которое сейчас представлено, хотя оно правильное слишком объемное для экзамена. Мне кажется, что его не успеть реализовать на экзамене, про отладку я вообще молчу.

По поводу последовательности:
 Документы, входящие в последовательность, только расходные.
 Автоматическое перемещение последовательности надо отключить, так как мы сами ее рассчитываем и устанавливаем при таком варианте списания себестоимости.

Название: Задача 1.07
Отправлено: 1C_CoderVamp от Август 23, 2010, 10:57:43 am
Quote (sv_mikh)
Мне кажется будет правильнее:
 1. включить в движения регистр ОстаткиНоменклатуры
 2. перемещать последовательность..
 т.е. реагировать и на изменения в приходах.

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

Quote (napan)
В регистр Продажи надо Ресурс количество заводить, иначе в отчете количество услуг не увидешь!!!

 не увижу, только зачем так кричать??? wink
Название: Задача 1.07
Отправлено: Anyur от Август 23, 2010, 02:58:13 pm
Alice, если не сложно поделись методическим пособием Учебного центра №3 "Решение оперативных задач", автор А. Габец по 8.2. А то почему-то при прохождении курсов по программированию в нашем учебном центре методички до сих пор приходят по 8.1 sad (nyuta      ЕСЛИ ВЫ ПОДЕЛИЛИСЬ СВОЕЙ ПОЧТОЙ, УДАЛИТЕ СООБЩЕНИЕ НЕМЕДЛЕННО ИЛИ БУДЕТЕ ЗАБАНЕНЫ. ЧИТАЙТЕ ПРАВИЛА!!!     pisem.net)
Название: Задача 1.07
Отправлено: Zhora_Vlg от Август 23, 2010, 07:29:40 pm
pershinsergei, вот посмотри, в обработке "РасчетСебестоимости" модуль объекта.
Вложения:
Zhora_Vlg-1.7.dt
Название: Задача 1.07
Отправлено: Zhora_Vlg от Август 23, 2010, 08:52:32 pm
pershinsergei, ну последовательности же для этого и придуманы.
Название: Задача 1.07
Отправлено: sv_mikh от Август 23, 2010, 09:33:40 pm
Quote (1C_CoderVamp)
отличие файлового варианта от клиент-серверного в данном случае в том, что в файловом варианте нужно самому вызывать обработчик регламентных заданий, а работают они абсолютно одинаково, поэтому реализовывать или нет смотри по времени, в любом случае делаются они быстро и лишним точно не будут

Уверены, что в файловом варианте будет работать вызов обработки заданий? Посмотрите доступность метода - Толстый клиент, Сервер. В файловом варианте в 8.2 (насколько я понимаю) реализовать пример не выйдет.

Добавлено (23.08.2010, 21:33)
---------------------------------------------

Quote (alice)
По поводу последовательности: Документы, входящие в последовательность, только расходные. Автоматическое перемещение последовательности надо отключить, так как мы сами ее рассчитываем и устанавливаем при таком варианте списания себестоимости.

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

Название: Задача 1.07
Отправлено: Zhora_Vlg от Август 24, 2010, 01:32:50 am
sv_mikh, свойство последовательности "Перемещение границы при проведении:" не влияет на сдвиг границы последовательности назад.
Название: Задача 1.07
Отправлено: alice от Август 24, 2010, 09:26:19 am
В случае если приход изменяется, то в последовательности будут перепроводится только документы расхода, у которых обусловленное проведение. Не имеет смысл проводить документы прихода. А поскольку, движения влияющие на последовательность отслеживаются по регистрам, то граница будет сдвинута на последний крайний правильный документ, будь то приход или расход, ну то есть, документы двигающие этот регистр.
Название: Задача 1.07
Отправлено: petrov86 от Август 24, 2010, 10:22:36 am
Смотрел вариант решения задачи alice, но не понял почему решила остатки хранить в двух регистрах. Отдельно по партиям и отдельно по складам. А если будет не две аналитики, а 10 - 10 таблиц?

Quote (1C_CoderVamp)
Это мой вариант, может кто взглянет....... Добавлено (21.07.2010, 14:13)---------------------------------------------Да, там не реализован механизм списания услуг, не стал заморачиваться все и так знают что и как с этим делать
 Прикрепления: 107_1CCoder.dt(162Kb)

 Прочитав данное сообщение, задумался. А что нужно делать с услугами. Я ничё с ними не делаю. Похорошему наверно они должны уменьшать прибыль или увеличивать себестоимость. Но об этом ничё не написано.
 Подскажите плиз чё с ними делать?
Название: Задача 1.07
Отправлено: alice от Август 24, 2010, 10:30:31 am
Два регистра, чтобы правильно посчитать себестоимость, согласно условию задачи.
Название: Задача 1.07
Отправлено: petrov86 от Август 24, 2010, 10:40:43 am
Не понял. Можно поподробнее.
 Сейчас я не вижу трудностей при списании себестоимости через один регистр.
 Группируем по номенклатуре, партии и складу. Делаем сортировку по дате партии в зависимости от фифо или лифо. И последовательно записываем аналогичные записи только расходные, пока есть количество указанное в строках документа.
 Да может получится 2-3 - много движений по одной строке документа. Но это не страшно.
Название: Задача 1.07
Отправлено: alice от Август 24, 2010, 10:56:21 am
1. Партия 1 - 10 шт по 5р. - пришла на Склад 1;
 Партия 2 - 10 шт по 7 р. - пришла на склад 2;
 Ты отгружаешь со склада 2 10 шт , но себестоимость нужно посчитать по партии 1, она же раньше. Ну и как ты ее посчитаешь?
Название: Задача 1.07
Отправлено: petrov86 от Август 24, 2010, 11:18:18 am
Quote (alice)
1. Партия 1 - 10 шт по 5р. - пришла на Склад 1; Партия 2 - 10 шт по 7 р. - пришла на склад 2; Ты отгружаешь со склада 2 10 шт , но себестоимость нужно посчитать по партии 1, она же раньше. Ну и как ты ее посчитаешь?

 Спасибо. Теперь понял.
 Знать бы ещё точно, что под словами "При проведении документа Расходная накладная необходимо производить списание товара со склада" надо понимать именно это. Я думал что нужно сначало списать 10 шт с партии 1 и склад 1 но стоимость поставить ноль. А при пересчёте уже выполнить полное движение с расчитанной стоимостью.
 Если бы они написали списание со склада, указанного в реквизитах документа, сразу было бы понятно или примерчик.
 Жесть.
 Спасибо, за то что рассказала.
Название: Задача 1.07
Отправлено: alice от Август 24, 2010, 11:23:03 am
Это классическая задача.
 Склад и партия здесь - два не связанных между собой измерения и, соответственно, "жить" они могут только в разных регистрах.
 Здесь имеется ввиду, что по конкретному складу контролируется только остаток, а себестоимость рассчитывается уже по партиям совсем отдельно.
Название: Задача 1.07
Отправлено: 1C_CoderVamp от Август 29, 2010, 02:51:50 pm
Quote (sv_mikh)
Уверены, что в файловом варианте будет работать вызов обработки заданий? Посмотрите доступность метода - Толстый клиент, Сервер. В файловом варианте в 8.2 (насколько я понимаю) реализовать пример не выйдет.

 Будет wink
Название: Задача 1.07
Отправлено: aworld от Сентябрь 02, 2010, 09:16:53 pm
alice, все таки наверно Движения.ОстаткиНоменклатурыНаСкладах.Записывать = ложь, раз уж записываем вручную?
Название: Задача 1.07
Отправлено: User67 от Сентябрь 05, 2010, 08:35:14 pm
Alice, если не сложно поясните пожалуйста -
 1) для чего выполняется проверка - Если ВыборкаДетальныеЗаписи.КолОст < 0, ведь это же суммарный остаток по партиям, он разве в минус может уйти?
 2) возможно от бестолковости но не понял для чего в запросе по себестоимости конструкция -{ГДЕ
       |   ОстаткиНоменклатурыПоПартиямОстатки.Партия.*}
 И если возможно поделитесь пожалуйста методикой решения оперативных задач (почта ykomissarov      ЕСЛИ ВЫ ПОДЕЛИЛИСЬ СВОЕЙ ПОЧТОЙ, УДАЛИТЕ СООБЩЕНИЕ НЕМЕДЛЕННО ИЛИ БУДЕТЕ ЗАБАНЕНЫ. ЧИТАЙТЕ ПРАВИЛА!!!     mail.ru)
Название: Задача 1.07
Отправлено: ut2k5 от Сентябрь 09, 2010, 07:32:19 pm
люди, мне кажется, что вот это "при списании себестоимости необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел"..., НО разве может товар прийти на разные склады одной и той же партией..., т.о. если себестоимость рассчитывается в порядке партии, то и себестоимость будет в разрезе склада..

поправьте, если не прав... на мой взгляд это подвох...

Название: Задача 1.07
Отправлено: palax от Сентябрь 10, 2010, 10:32:35 am
Quote (petrov86)
1. Партия 1 - 10 шт по 5р. - пришла на Склад 1; Партия 2 - 10 шт по 7 р. - пришла на склад 2; Ты отгружаешь со склада 2 10 шт , но себестоимость нужно посчитать по партии 1, она же раньше. Ну и как ты ее посчитаешь?
, попробовать на одном надо, лишний регистр не совсем правильно
Название: Задача 1.07
Отправлено: alice от Сентябрь 10, 2010, 11:19:12 am
Alice, если не сложно поясните пожалуйста -
 1) для чего выполняется проверка - Если ВыборкаДетальныеЗаписи.КолОст < 0, ведь это же суммарный остаток по партиям, он разве в минус может уйти?

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

2) возможно от бестолковости но не понял для чего в запросе по себестоимости конструкция -{ГДЕ
 | ОстаткиНоменклатурыПоПартиямОстатки.Партия.*}

Это конструкция построителя запроса для условного добавления сортировки по партиям в зависимости от значения установленной учетной политики на текущий год, закладка "Построитель" в конструкторе запросов. Использую здесь для того, чтобы не прерывать текст запроса и чтобы его можно было открыть в конструкторе.
 Вообще построитель очень удобная штука, но злоупотреблять им не стоит, поскольку это не запрос и у него другие свойства и методы.

попробовать на одном надо, лишний регистр не совсем правильно

Ну, попробуй, заодно и покажешь, если получитится.. dry

Название: Задача 1.07
Отправлено: palax от Сентябрь 10, 2010, 03:35:50 pm
Zhora_Vlg, посмотрел твое решение ты в цикле используешь запрос (процедура в обработке), за это снизят оценку однозначно?
Название: Задача 1.07
Отправлено: marku от Сентябрь 19, 2010, 12:35:39 am
Вот мое решение
Вложения:
1.07_1Cv8.dt
Название: Задача 1.07
Отправлено: InSurgent от Октябрь 02, 2010, 07:38:21 pm
и моё
Вложения:
InSurgent-1.7.dt
Название: Задача 1.07
Отправлено: User_OKA от Октябрь 07, 2010, 08:19:03 pm
Мое решение
Вложения:
1_07_2.dt
Название: Задача 1.07
Отправлено: Limas от Октябрь 19, 2010, 12:05:21 pm
User_OKA
 Прикрепления: 1_07_2.dt
 НАШЕЛ НЕДОРАБОТКУ!!!!! При формировании себестоимости создаются движения только в последнем документе.
 Т.к. в процедуре перерасчета себестоимости при выборке документов из последовательности туда попадает только последний документ. Это связано с тем, что граница последовательности двигается автоматически при проведении расходных накладных.
 Думаю управлять последовательностью нужно вручную - примерно так:
 
 // в обработке проведения

   Если НЕ Последовательности.Себестоимость.Принадлежит(Ссылка) Тогда
       НаборЗаписейПоследовательность = ПринадлежностьПоследовательностям.Себестоимость;
       НаборЗаписейПоследовательность.Добавить();
    Иначе
       // документ уже есть в последовательности - сейчас скорее всего перепроводится
    КонецЕсли;
    
    Граница = Последовательности.Себестоимость.ПолучитьГраницу();
    МоментДокумента = Ссылка.МоментВремени();
    Если Граница.Сравнить(МоментДокумента) = 1 Тогда
 // граница позже чем документ - проводим задним числом (вернем границу
 // последовательность назад - на момент проведения документа)
       Последовательности.Себестоимость.УстановитьГраницу(МоментДокумента);   
 Иначе
 // ничего не делаем границу сдвинем при расчете себестоимости
    КонецЕсли;

Название: Задача 1.07
Отправлено: sada от Октябрь 23, 2010, 05:30:00 pm
Мой вариант решения Задачи 1.07
Вложения:
1Cv8_sada_1_07.dt
Название: Задача 1.07
Отправлено: ruin от Октябрь 23, 2010, 07:52:43 pm
To Sada:
 1. У тебя документ приходная накладная никак не влияет на последовательность себестоимости. Если я ввожу документ задним числом, то после этой даты хотелось бы все перерасчитать.
 2. Про учетную политику: у тебя логика такая: если учетная политика не задана рограмма будет использовать метод по убыванию. А красивее наверное выдавать сообщение и вообще ничего не считать.
 и метод: РС.ИмяРегистра.СрезПоследних(дата)[0] это как-то жестоко по моему) если записей нет он свалиться с ошибкой (идекс находиться за границами массива). Не проще ли было взять методом РС.ИмяРегистра.ПолучитьПоследнее() !?
 3. В запросе остатков себестоимость поленился isnull() написать. Итог - опять ошибки про нулевом остатке себестоимости, программа не может умножать и делить на null в коде , только в запросе.
 4. (добавление к пункту 1) При перепроведении задним числом расходной накладной только она запишется в список документов к рассчету себестоимости. А в задаче написано что-то вида: мы должны хранить документ, начиная с которого нужно расчитывать себестоимость. Поэтому проще наверное хранить в границе момент начиная с которого будет происходить расчет себестоимости и после этого будет смещаться ганица на последний рассчитаный документ.

Ну а так вроде все красиво. Жду комментариев в ответ)


Вложения:
1_07_ruin.dt
Название: Задача 1.07
Отправлено: sada от Октябрь 26, 2010, 05:45:19 am
ruin,
 Для расчета себестоимости весь объект документа не обязателен, достаточно ссылки. По этому, я думаю лучше процедуру расчета в модуль менеджера вынести.

Также при расчете транзакцию не используешь, в твоей процедуре «РассчитатьСебестоимость()», нет неявных транзакций как в обработке проведения, по этому надо ставить иначе блокировки не отработают.

При контроле остатков, задаешь параметр "Дата", но документ оперативно проводится, так пусть берет на последнюю дату итогов, а при не оперативном проведении нет смысла остатки контролировать. По-хорошему, вообще надо проверку поставить на оперативное проведение и если оно не оперативное, то контроль просто не выполнять.

Еще в пакете запроса на закладке индекс, желательно указывать те поля по которым с последующих запросах из этой таблицы отбор делаешь.

В расчете себестоимости Движение.Сумма = ?(ВыборкаПартия.КоличествоОстаток = 0,0, Наверное логично при таком остатке количества списать все-таки сумму остатка себестоимости а не 0.

С последовательностью думаю ты прав.

Название: Задача 1.07
Отправлено: movlost от Ноябрь 02, 2010, 12:43:45 pm
sada,
 если тебе не трудно, помоги изменить твою информационную базу, чтобы расчет себестоимости производился при проведении Расходной наклодной. Пожалуйста, очень надо.
Название: Задача 1.07
Отправлено: sada от Ноябрь 02, 2010, 01:18:52 pm
movlost, зачем это, тут дополна баз с расчетом себестоимости реализацией
Название: Задача 1.07
Отправлено: movlost от Ноябрь 02, 2010, 02:50:22 pm
у меня задание как 1.7 только расчет себестоимости производить надо при проведении Расходной наклодной
Название: Задача 1.07
Отправлено: sada от Ноябрь 02, 2010, 02:55:50 pm
movlost, помотри в любой задаче , там везде расчет себестоимости в расходной
Название: Задача 1.07
Отправлено: movlost от Ноябрь 02, 2010, 03:00:33 pm
Вообщето мне надо реализовать пример с сайта 1С, там задача по Оперативному учеты почти как 1.7.
Название: Задача 1.07
Отправлено: sada от Ноябрь 02, 2010, 03:04:48 pm
movlost, пример с сайта пока не делал, в ближайшие 2 недели в планах нет такого, еще из сборника много задач не решеных, поищи в ветке 8.1 может там кто решал
Название: Задача 1.07
Отправлено: movlost от Ноябрь 02, 2010, 03:29:50 pm
sada,
 спасибо за совет
Название: Задача 1.07
Отправлено: unknown181538 от Ноябрь 25, 2010, 01:19:35 am
Допустимы ли запросы в цикле при расчете себестоимости? (по одному на реализацию)
 Удалось ли кому-нибудь решить без них?
Название: Задача 1.07
Отправлено: AndreiPiter от Декабрь 18, 2010, 05:39:04 pm
моё решение
Вложения:
1-07.dt
Название: Задача 1.07
Отправлено: rus от Январь 21, 2011, 07:26:00 am
Мое решение
Вложения:
1209469.dt
Название: Задача 1.07
Отправлено: Danan от Январь 28, 2011, 09:50:20 am
Мое решение.
 1) В обработке проведения расходной правильно ли реализована новая методика? Теоретически знаю эту методику, хочется узнать мнение со стороны на то как это реализовано практически.

2) Я так полагаю при расчете себестоимости должен также заполняться регистр Продажи. У кого какие мысли по этому поводу?

3) Алгоритм списание себестоимости реализовывал через модуль менеджера. В ручном режиме удается проверить работоспособность обработки РасчетСебестоимости. Как проверить работу регламентных заданий я так и не понял ( то ли учебная версия сказывается, или я не разобрался как следует). Регламентные задания делал по книге "Практическое пособие разработчика 8.2" (занятие 20). Написал как в книге обработку для запуска регламентных заданий в толстом клиенте, что то она не пошла. Переписал ее на то чтобы она при открытии запускала процедуру в общем модуле для регламентного задания, так расчет себестоимости работает.


Вложения:
Task_1_7.dt
Название: Задача 1.07
Отправлено: hapcher от Февраль 01, 2011, 09:20:06 pm
sada, в твоем решении при проведении документа Расходная "задним" числом, период движений по регистру "Себестоимость" остается старым (не меняется) - это корректное поведение? Экзаменаторы нормально отнесутся?
Название: Задача 1.07
Отправлено: sada от Февраль 02, 2011, 06:10:07 am
hapcher,
 Думаю что не должен меняться, расходная накладная вообще себестоимостью «не занимается», единственное что она должна сделать это сдвинуть границу последовательности, чтобы сообщить обработке «Расчет себестоимости» о том, что она «натворила делов» :) , а пока граница не актуальна себестоимость можно считать не корректной, запустим обработку , приведем в порядок.

Если обработка это не отслеживает и не изменяет период движений регистрации, то возможно в выложен не самый последний вариант решения (что-то там с последовательностью намудрил), в текущем варианте все ок.

Название: Задача 1.07
Отправлено: Gulf_Stream от Февраль 11, 2011, 07:26:38 am
Danan, маленькое замечание, при распределении по пратиям ты получаешь учётную политику только один раз, а ведь распределение по партиям может проводиться сразу за 2 года.
Название: Задача 1.07
Отправлено: Gulf_Stream от Февраль 11, 2011, 01:13:18 pm
мой вариант
Вложения:
2513638.dt
Название: Задача 1.07
Отправлено: Danan от Февраль 11, 2011, 07:49:31 pm
Gulf_Stream, где 2 там , 3 года может быть и более. В таком случае имеет смысл получать метод списания себестоимости в модуле менеджера документа расходная.
 Ты это имеешь ввиду?
Название: Задача 1.07
Отправлено: Gulf_Stream от Февраль 12, 2011, 05:27:01 am
Да
Название: Задача 1.07
Отправлено: sergio0 от Апрель 18, 2011, 12:07:12 am
Доброго времени суток.
 Подскажите, почему могут не работать регламентные задания?

Моя база.


Вложения:
Sergio_1.07.dt
Название: Задача 1.07
Отправлено: Matcoder от Апрель 18, 2011, 09:59:28 pm
Quote (sergio0)
Доброго времени суток. Подскажите, почему могут не работать регламентные задания?

Незнаю как в 8.2, а в 8.1 это таботало так:
 Обработка = Обработки.РасчетСебестоимости.Создать();
 Обработка.РасчитатьВМенеджере();

Название: Задача 1.07
Отправлено: sergio0 от Апрель 18, 2011, 10:40:07 pm
Matcoder, да это я знаю, почему не работает не знаю))
Название: Задача 1.07
Отправлено: Danan от Апрель 19, 2011, 04:14:40 am
sergio0, проверял учебной версии платформы?
Название: Задача 1.07
Отправлено: sergio0 от Апрель 19, 2011, 08:20:44 am
Danan, нет, обычная.
Название: Задача 1.07
Отправлено: AndreiPiter от Апрель 19, 2011, 02:14:24 pm
Quote (sergio0)
Подскажите, почему могут не работать регламентные задания?

 Регламентные задания работают только в серверверном варианте работы 1с:Предприятие, за них отвечает менеджер кластера.
Название: Задача 1.07
Отправлено: Matcoder от Апрель 19, 2011, 09:19:21 pm
AndreiPiter,
 нифига подобного, в файловом тоже работают, в выделенном сеансе с запущенным обработчиком заданий.
Название: Задача 1.07
Отправлено: AndreiPiter от Апрель 20, 2011, 10:03:39 am
Quote (Matcoder)
в файловом тоже работают, в выделенном сеансе с запущенным обработчиком заданий.

 да, в файловом варианте так.
Название: Задача 1.07
Отправлено: Danan от Май 16, 2011, 11:44:15 pm
Еще один вариант решения.
Вложения:
Task_1_7_V2.dt
Название: Задача 1.07
Отправлено: antantait от Май 24, 2011, 09:53:56 am
Прокомментируйте мое решение
Вложения:
antantait_1_7.dt
Название: Задача 1.07
Отправлено: Alejandro_m от Май 25, 2011, 01:11:38 am
думал решить задачу так: (продажи не делал - там вроде все ясно)
Вложения:
1_7.dt
Название: Задача 1.07
Отправлено: Lukashov_as от Июнь 13, 2011, 10:48:07 pm
ой как то сомнения гложат на тему той задачи
Вложения:
1_7_lukashov.dt
Название: Задача 1.07
Отправлено: Para_1987 от Июль 06, 2011, 09:28:43 pm
Вот решил, выкладываю на критику. Любая критика имеет право на жизнь smile
 Не понял как реализовать выполнение регл.задания автоматически...и не стал делать отчеты, думаю их любой сможет накидать.
Вложения:
Para_1987_1.07_.dt
Название: Задача 1.07
Отправлено: Незнайка от Июль 07, 2011, 07:39:13 pm
Скажите, а зачем делать расчет себестоимости именно в модуле менеджера обработки? почему нельзя обойтись просто модулем формы?

 Все, вопрос снят!

Добавлено (07.07.2011, 19:39)
---------------------------------------------
Решила задачу с одним регистром накопления. Не вижу смысла в двух: один для остатков номенклатуры и один для себестоимости.
 Все прекрасно сочетается в одном.
 Прошу знатоков прокомментировать smile

Название: Задача 1.07
Отправлено: Незнайка от Июль 07, 2011, 07:41:46 pm
Упс.. забыла прикрепить)

Добавлено (07.07.2011, 19:41)
---------------------------------------------
И еще, насколько строго судят на экзамене за неполное соответствие отчета той схеме(таблице), которая указана в задаче???
 Основная сложность заключается в том, что бы расположить поля группировок относительно детальных записей особым образом. Стоит ли заморачиваться на этом или за это не штрафуют? smile


Вложения:
Neznaika_1.7.dt
Название: Задача 1.07
Отправлено: DoctorRoza от Июль 07, 2011, 08:05:10 pm
В задаче четко написано .. учет товаров ведется в разрезе складов, а не складов и партий! Поэтому 1 регистра мало .. надо 2
 //////////////////////////////
 Ой .. Вы хоть пишите код красиво, чтобы проверить можно было! smile
 Итак .. в Вашем документе "Расходная Накладная" добавьте Доставку .. рублей так на 100 .. и посмотрите РН Продажи .. Что то там не так рассчитывается. Отчеты делайте все-таки более приближенным к условию задачи. Например, складывать доставку и товар, в От Продажах, не совсем будет корректно. Отсюда, посмотрите настройку итогов.
 На всякий случай, Режим управления блокировкой данных = Управляемый .. это нужно помнить, иначе Блокировка не нужна.
 //////////////////////////////////////////
 Ну и для себя .. так сказать .. ИМХО .. выносите всегда используемые регистры в подсистемы, а также в формах документа, чтобы сразу можно было проверять чего там напроводилось!
 Проверьте еще раз свое решение .. в нем есть серьёзные ошибки.
Название: Задача 1.07
Отправлено: Незнайка от Июль 08, 2011, 11:41:22 am
Quote (DoctorRoza)
В задаче четко написано .. учет товаров ведется в разрезе складов, а не складов и партий! Поэтому 1 регистра мало .. надо 2

 - Разве это прямое руководство к созданию 2-х регистров? Считаю, что это спорный вопрос, ведь явно не сказано, что НЕ НАДО ВЕСТИ В РАЗРЕЗЕ ПАРТИЙ. Прошу понять правильно, это не реакция на критику. Другое дело, если на экзамене это будет трактоваться так, как сказал DoctorRoza... Тогда да, нужно вводить 2 регистра.. А были прецеденты?

 
Quote (DoctorRoza)
Вы хоть пишите код красиво, чтобы проверить можно было!
- Буду стараться!

 
Quote (DoctorRoza)
в Вашем документе "Расходная Накладная" добавьте Доставку
- С услугами и правда не лады.

 
Quote (DoctorRoza)
Режим управления блокировкой данных = Управляемый

 Вот тут ступор sad . Где, в каком месте это надо указать? Как это работает? Поясните , если не затруднит.

 Спасибо за ценные комментарии smile

Добавлено (08.07.2011, 11:41)
---------------------------------------------
И еще один вопрос: очистка от старых движений при перепроведении документа РасходнаяНакладная. Свойство Удалять движения при отмене проведения означает, что при перепроведении набор Движения.ОстаткиНоменклатуры будет содержать раннее созданные движения. Однако на практике выяснилось, что при перепроведении расходной еще задолго до Движения.ОстаткиНоменклатуры.Записать() движения пустые!!!!!!!!! Как так? Что неверно у меня? Кто то сталкивался с этим?

Название: Задача 1.07
Отправлено: SergTH000 от Июль 08, 2011, 12:34:09 pm
Quote
- Разве это прямое руководство к созданию 2-х регистров? Считаю, что это спорный вопрос, ведь явно не сказано, что НЕ НАДО ВЕСТИ В РАЗРЕЗЕ ПАРТИЙ. Прошу понять правильно, это не реакция на критику. Другое дело, если на экзамене это будет трактоваться так, как сказал DoctorRoza... Тогда да, нужно вводить 2 регистра.. А были прецеденты?

 Нужно смотреть, как в условии сказано про суммовой учет: ведется он по складам или нет. Допустим по складам суммовой учет ведется, тогда нужно использовать один РН измерения Ном, Склад, Партия, ресурсы кол, сумма. Если же нет (себестоимость не зависит от того на какой склад поступил товар), то на одном регистре не получится, например
 На склад 1 поступило 1шт товара сумма 500
 На склад 2 поступило 1шт товара сумма 400
 Списываем 2 шт товара (себестоимоисть (500+400)/2=450). Остаток на складе 1 - кол 0, сумма 50, на складе 2 - кол 0, сумма -50. бред получается. Поэтому используют два регистра:один для расчета себестоимости (без измерения склад), другой для контроля остатков по складам (без изм. партия и ресурса сумма, списание по этому регистру будет по новой методике)

 
Quote
Вот тут ступор . Где, в каком месте это надо указать? Как это работает? Поясните , если не затруднит.

 Это свойство конфигурации

 
Quote
И еще один вопрос: очистка от старых движений при перепроведении документа РасходнаяНакладная. Свойство Удалять движения при отмене проведения означает, что при перепроведении набор Движения.ОстаткиНоменклатуры будет содержать раннее созданные движения. Однако на практике выяснилось, что при перепроведении расходной еще задолго до Движения.ОстаткиНоменклатуры.Записать() движения пустые!!!!!!!!! Как так? Что неверно у меня? Кто то сталкивался с этим?

 http://forum.chistov.pro/index.php?topic=1310.msg13626#msg13626
Название: Задача 1.07
Отправлено: Незнайка от Июль 08, 2011, 01:18:10 pm
SergTH000, спасибо за ответ..
 1. По поводу 2-х регистров. Лучше делать 2, чтобы не возникло никаких коллизий. Тем более что в условии не сказано, что суммовой учет надо вести в разрезе складов. Видимо лучше использовать проверенный механизм, а не изобретать велосипед и быть оштрафованным на экзамене.

 2. Блокировки. Режим "Управляемый" стоит по умолчанию. Там лишь только нужно вручную блокировать поля регистров при контроле остатков. Верно?
 3. Очистка старых движений при перепроведении. Ответ не совсем тот. В принципе понятно, когда надо использовать новую методику проведения. Я лишь хотела сказать, что при свойсвте "Удалять движения при отмене проведения" в обработке проведения набор Движения пуст, т.к. он не читается. (т.е. если бы мы написали Движения.ОстаткиНоменклатуры.Прочитать(), то тогда Движения.ОстаткиНоменклатуры содержали бы в себе все старые записи и при последующем добавлении новых они бы дублировались. А так как мы не читаем движения, то автоматически мы их перезапишем.) Получается, что Движения.Записать() для очистки старых движений не имеет смысла. Вот только что на это скажут экзаменаторы.

 Какие будут мысли, товарищи Знатоки???

 И еще, чем больше готовлюсь к экзамену, тем больше понимаю, что надо учиться не решать задачи, а стремиться не забыть выполнить все пунктики, за которые могут снизить балл.... Мартышкин труд, однако никуда не деться от этого... А жаль.
Название: Задача 1.07
Отправлено: SergTH000 от Июль 08, 2011, 01:40:44 pm
2. Не знаю как сейчас раньше был Автоматический. Нужно конечно управляемый, блокировки: при старой методике БлокировкаДанных, при новой установить свойству БлокироватьДляИзменения Истина
 3. Хоть он и не читается, но в системе то набор есть: при выполнении запроса данные получаются не верные (если удалять автоматически - то набор удалится из системы). Поэтому надо их удалить, например записав пустой набор: Движения.ИмяРегистра.Записать();

Добавлено (08.07.2011, 13:40)
---------------------------------------------

Quote
И еще, чем больше готовлюсь к экзамену, тем больше понимаю, что надо учиться не решать задачи, а стремиться не забыть выполнить все пунктики

 Это потом на автомате будет =)
Название: Задача 1.07
Отправлено: Незнайка от Июль 08, 2011, 01:56:01 pm
Quote (SergTH000)
при выполнении запроса данные получаются не верные


 хорошо подмечено! но ведь эту ситуацию можно обойти, отбирая остатки на МоментВремени()! и тогда существующие движения в результат запроса не попадут. Верно?
Название: Задача 1.07
Отправлено: SergTH000 от Июль 08, 2011, 02:03:01 pm
Quote
хорошо подмечено! но ведь эту ситуацию можно обойти, отбирая остатки на МоментВремени()! и тогда существующие движения в результат запроса не попадут. Верно?

 Не верно=) Попадут, тк МоментВремени() - это вот сейчас при проведении этого документа, а движения то старые.

Добавлено (08.07.2011, 14:03)
---------------------------------------------
Движения документа не попадут, если только их только что, в этой обработке проведения записали, перед выполнением запроса.

Название: Задача 1.07
Отправлено: Незнайка от Июль 08, 2011, 02:49:53 pm
Вот те на... sad
 Тогда что такое МоментВремени?
 Получается, что если я буду перепроводить документ другим числом, то моментВремени у меня создастся на новую дату? Тогда да, если новая дата больше старой, то в результат запроса по идее должны попасть старые записи, если их предварительно не зачистить.... уффф.... Друзья, как вы это все понимаете!!?!? surprised
Название: Задача 1.07
Отправлено: lubja от Июль 08, 2011, 02:53:11 pm
у меня вопрос! возник при решении данной задачи... есть оборотный регистр накопления Продажи. на него блокировку нужно накладывать?
Название: Задача 1.07
Отправлено: Незнайка от Июль 08, 2011, 03:04:01 pm
Мне кажется, это зависит от того, заполняешь ли ты его товарами в расходной накладной или нет. Если заполняешь (с нулевой себестоимостью), то при списании себестоимости, тебе надо будет сделать сторно, а потом добавить полноценные записи с количеством и себестоимостью. Поэтому блокировать надо... вдруг кто-то в этот момент захочет распровести расходную накладную!?
Название: Задача 1.07
Отправлено: lubja от Июль 08, 2011, 03:07:41 pm
в продажи у меня пишется Номенклатура, Количество, Себестоимость и Сумма продажи. и это, еще раз подчеркивая, оборотный регистр, т.е. остатки я не проверяю, а тупо заношу данные о продаже
Название: Задача 1.07
Отправлено: SergTH000 от Июль 08, 2011, 03:16:06 pm
Незнайка, А что такого то? МоментВремени() - метод документа (возвращает дата+ссылка) однозначно определяет положение документа.

Добавлено (08.07.2011, 15:16)
---------------------------------------------

Quote
у меня вопрос! возник при решении данной задачи... есть оборотный регистр накопления Продажи. на него блокировку нужно накладывать?

 Зачем? При поступлении же не нужно. Когда
Quote
тупо заношу данные о продаже
блокировать ничего не надо.
Название: Задача 1.07
Отправлено: Незнайка от Июль 08, 2011, 03:17:47 pm
В РасхНакл ты записываешь в Продажи: Ном1 Колво = 1 Сумма = 5 Себестоимость = 0.
 В обработке списания себестоимости тебе надо бы сделать такие движения:
 Ном1 Колво = -1 Сумма = -5 Себестоимость = 0.
 Ном1 Колво = +1 Сумма = +5 Себестоимость = 2.

 Возможно я ошибаюсь, только вчера над этим голову ломала... Может достаточно будет прибавить к существующим записям
 Ном1 Колво = 0 Сумма = 0 Себестоимость = 2. В этом случае блокировать не надо.. наверное..

 Сама то как думаешь?
Название: Задача 1.07
Отправлено: SergTH000 от Июль 08, 2011, 03:20:39 pm
Блокировать нужно только тогда, когда есть проверки на правильность записи. То есть записали, и еще не понятно должны ли это видеть другие пользователи или нет (может отменим все). Или при старой методике, получили данные, нужно обеспечить их актуальность (мы проверяем количество, рассчитываем себестоимость) если не блокировать, другой пользователь поменяет данные и все...зря проверяли и считали...
Название: Задача 1.07
Отправлено: Незнайка от Июль 08, 2011, 03:22:05 pm
Quote (Незнайка)
блокировать ничего не надо.

 Надо! Потому что количество проданного товара и его себестоимость вносится в регистр разными документами(расходная накладная и обработка). Так вот при списании себестоимости ктото может взять и распровести расходную. Тогда окажется, что данных о количестве нет, а списанная себестоимость есть.
Название: Задача 1.07
Отправлено: lubja от Июль 08, 2011, 03:27:08 pm
Незнайка,
 в продажи ничего не списывается! туда только заносится, что этой фигни мы продали столько по такой цене, а себестоимость у нее была такая-то... по этому регистру строится отчет о продажах за период...

 SergTH000,
 я, в принципе, так и думала, но хотелось все-таки услышать еще мнения. спасибо)
Название: Задача 1.07
Отправлено: SergTH000 от Июль 08, 2011, 03:28:04 pm
Незнайка, Че за бред, продажи блокировать не нужно.
 
Quote
Так вот при списании себестоимости ктото может взять и распровести расходную

 Ну и удалятся все движения по всем регистрам этой расходной, которую распровели.
Название: Задача 1.07
Отправлено: lubja от Июль 08, 2011, 03:31:08 pm
Незнайка,
 мы точно говорим об одной и той же задаче? smile в той, что я обсуждаю, ничего не сказано про какую-либо обработку...

Добавлено (08.07.2011, 15:31)
---------------------------------------------
+ действительно, при распроведении дока просто очищаются движения документа...

Название: Задача 1.07
Отправлено: Незнайка от Июль 08, 2011, 04:02:27 pm
Quote (lubja)
мы точно говорим об одной и той же задаче?


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

 Все таки переделаю ее с использованием 2-х Регистров: по остаткам товаров и по себестоимости. Тогда продажи при регламентной обратобке списания себес-ти участвовать не будут, и , соответсвенно, блокировать ничего не нужно.

 Извините что всех запутала wacko
Название: Задача 1.07
Отправлено: lubja от Июль 08, 2011, 04:10:08 pm
Незнайка,
 кстати, препод на курсах говорил, чтобы понять, какая структура регистров нужно, посмотрите на отчеты... из двух отчетов понятно, что нужно минимум 2 регистра... и так будет правильнее!
Название: Задача 1.07
Отправлено: SergTH000 от Июль 08, 2011, 04:20:50 pm
Quote
При проведении РасхНакл в продажи я записываю услуги, а в обработке по регламентному списанию Себестоимости дозаписываю в продажи все, что касается товаров. Поэтому я так рьяно настаивала на блокировке. И в Продажах у меня есть ресурс "Себестоимость". При проведении РасхНакл в продажи я записываю услуги, а в обработке по регламентному списанию Себестоимости дозаписываю в продажи все, что касается товаров


 Все равно, не нужно блокировать продажи. Если распровести расходную до выполнения обработки, то обработка ее не увидит. Если после, то удалятся все движения. Главное условие блокировок - наличие проверок на правильность записи. Если проверок нет - нет и блокировок.
Название: Задача 1.07
Отправлено: DoctorRoza от Июль 08, 2011, 06:52:43 pm
Добавлю к словам SergTH000, что Блокировки имеют смысл в том случае, когда есть вероятность конкуренции за какой то ресурс, который мы учитываем. При этом этот ресур постоянно находится в динамике. Вот тут то и необходима Блокировка, чтобы один пользователь заблокировал чего-нибудь, а др. пользователь это что-нибудь уже не трогал, а ждал своей очереди. РН Продажи блокировать не нужно! Данные этого регистра - это всего лишь следствие списания, дополнительная информация для служебных нужд. И блокировать его не имеет смысла!
Название: Задача 1.07
Отправлено: kravius от Июль 19, 2011, 05:14:57 pm
Уважаемые коллеги. Пожайлуста ответьте на вопрос: При проведении по новой методике, при контроле отрицательных остатков, какой момент времени писать в запрос? Почитав это http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=563619 обсуждение и еще пару статей, для себя сделала вывод, что по новой методике остатки нужно контролировать только при опер. проведении. Так?

Добавлено (19.07.2011, 16:30)
---------------------------------------------
И сразу еще вопрос: При написании алгоритма обработки расчет себестомости придется использовать запрос в цикле. При обходе документов. В данной задаче - это допустимо? Или у кого то есть иные варианты?

Добавлено (19.07.2011, 17:03)
---------------------------------------------
первый вопрос снят

Добавлено (19.07.2011, 17:14)
---------------------------------------------
второй снят

Добавлено (19.07.2011, 17:14)
---------------------------------------------
http://see1c.ru/Solution-107.php

Название: Задача 1.07
Отправлено: kow1976 от Июль 23, 2011, 08:23:16 am
Расчет выручки в решении вынес в регламент не знаю на сколько это правильно?
Вложения:
kow19761.7.dt
Название: Задача 1.07
Отправлено: poritskiy от Июль 31, 2011, 10:53:30 pm
Подскажите формальность, как правильно ;
 В спр.Номенклатура в реквизите Услуга правильнее будет ставить ТИп булево, или все таки Перечисления.ВидыНоменклатуры.
 На экзамене к этому придерутся?
Название: Задача 1.07
Отправлено: DoctorRoza от Июль 31, 2011, 11:05:57 pm
Quote (poritskiy)
Подскажите формальность, как правильно ; В спр.Номенклатура в реквизите Услуга правильнее будет ставить ТИп булево, или все таки Перечисления.ВидыНоменклатуры. На экзамене к этому придерутся?


 Лучше это не проверять, а сразу и заранее включать в свои решения те объекты метаданных, которые уже включены в каркасную конфигурацию! Если они есть, то значит подразумевается их использование! smile
Название: Задача 1.07
Отправлено: LEOON от Август 13, 2011, 10:45:31 pm
Хорошая задача, мне понравилась. В начале решения разбирал решение Sada, по этому вариант очень похож.
 Если не трудно покритикуйте, в своем варианте очень сложно найти ошибки. Особенно интересует насколько коректно
 использованы последовательности. Ну и про параметры(МоментВремени и т.д.), пока не особо вникал в индексирование так что и тут буду благодарен за советы.

 С уважением LEOON!(Сергей)
Вложения:
LEOON_1.07.dt
Название: Задача 1.07
Отправлено: ksen-chern от Август 17, 2011, 08:59:45 am
Всем привет. При решении опиралась на пример из курса по решению оперативных задач. Прошу посмотреть и дать советы и рекомендации по устранению недочетов, наверняка они найдутся.
Вложения:
2047210.dt
Название: Задача 1.07
Отправлено: kow1976 от Август 17, 2011, 01:46:01 pm
ksen-chern,

 Списываете только по приходным, которые оприходовали товар на склад заданный в расходной накладной.
 Надо «Для расчета себестоимости при списании товара необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел»
Название: Задача 1.07
Отправлено: beansidhe от Ноябрь 15, 2011, 07:46:08 am
А при проведении по партиям надо ли контроллировать остатки по регистру Партии? он же в принципе синхронен с остатками номенклатуры по общему количеству.
Название: Задача 1.07
Отправлено: gosn1ck от Ноябрь 23, 2011, 07:10:11 pm
beansidhe, нет не нужно
Название: Задача 1.07
Отправлено: nodalt от Декабрь 01, 2011, 08:29:39 pm
Вопрос.
 Смотрел несколько решений этой задачи.
 Сейчас сам решаю эту задачу и дошел до обработки - разбираюсь с последовательностью.
 Объясните пожалуйста, почему все программно двигают границу последовательности, если у объекта есть свойство "Перемещение границы при проведении". В обработке просто надо будет получить текущую границу и все.

 Извиняюсь - сморозил =)
 Разобрался с задачей.
Название: Задача 1.07
Отправлено: tan1c от Январь 19, 2012, 02:45:27 pm
Вопрос к профи, в данной задаче используется транзакция в цикле при расчете себестоимости в обработке, вопрос если вынести транзакцию и блокировку всего регистра наружу - это возможно, или внутри транзакции таблица итогов не пересчитывается (т.к. 1-заблокирована и 2-запись в нее делает платформа и возможно после окончания нашей транзакции), т.е. при обработке 2-го и последующих документов, данные таблицы итогов регистра (который мы заблокировали и из которого читаем данные для расчета) не меняются .
 И еще вопрос, почему используем менеджер обработки РасчетСебестоимости, а не менеджер документа РасходнаяНакладная?
Название: Задача 1.07
Отправлено: Gyd от Март 17, 2012, 05:43:51 pm
В решениях LEOON и kow1976 увидел запись пустых наборов в Расходной, а после идёт запись набора (по новой методике). Не подскажите, зачем вы так сделали?

 LEOON, а почему вы в последовательность Приходные не включили? //вопрос снимается, разобрался
Название: Задача 1.07
Отправлено: LEOON от Март 17, 2012, 06:49:59 pm
Gyd,
 Это ошибка, действительно лишняя запись.
 /////
 Кстати недавно перерешал данную задачу и сделал с МенеджеромВременныхТаблиц.
 Типа не выбирая ТЧ 2 раза.
Название: Задача 1.07
Отправлено: kow1976 от Март 17, 2012, 06:57:59 pm
Gyd,

 В моем решении лучше пустые наборы не писать.
Название: Задача 1.07
Отправлено: Gyd от Март 17, 2012, 07:38:25 pm
LEOON, новое решение можете выложить?
Название: Задача 1.07
Отправлено: LEOON от Март 17, 2012, 08:25:48 pm
Вот, правда отлаживал по минимуму.
 *******************
Вложения:
2868503.dt
Название: Задача 1.07
Отправлено: Gyd от Март 17, 2012, 09:11:59 pm
LEOON, у вас состояние последовательности нельзя через Все функции посмотреть.
 И та же ошибка что и в прошлом решении: при перезаписи прихода с меньшим количеством - даёт посчитать себестоимость. Посмотрите регистр ОстаткиНоменклатуры, я смоделировал эту ситуацию.
Вложения:
LEOON_1.07_test.dt
Название: Задача 1.07
Отправлено: LEOON от Март 17, 2012, 09:38:17 pm
Gyd,
 Ну при таком подходе нужно каждый раз создавать последовательность. Ведь всегда можно снести пару приходников smile
 Не считаю это ошибкой, это просто такой вариант решения. Можно конечно контролировать остатки при списании себестоимости. Но тогда придется и включать приходные в последовательность, и перепроводить расходные с целью контрля остатков всех вариантов и не просчитать так сразу. Задача/решение и без того злое и по сути нет никаких уточнений насчет ввода задним числом и т.д.
Название: Задача 1.07
Отправлено: Gyd от Март 17, 2012, 09:48:09 pm
Quote (LEOON)
Задача/решение и без того злое

 Согласен, задачка еще та smile
Название: Задача 1.07
Отправлено: sv_mikh от Март 17, 2012, 11:26:07 pm
Мой вариант. Дайте мне ее на экзамене. Хочу smile
Вложения:
sv_mikh_01_07.dt
Название: Задача 1.07
Отправлено: Gyd от Март 17, 2012, 11:55:59 pm
Что-то я не пойму как при помощи менеджера временных таблиц в конструкторе появляется временная таблица. Не использовал еще МВТ ни разу. Кто подскажет?
Название: Задача 1.07
Отправлено: LEOON от Март 18, 2012, 12:39:06 am
Во втором запросе, где мы будем использовать ВТ созданную в первом запросе. На первой странице конструктора вторая кнопочка по центру "Создать описание временной таблицы", там достаточно написать имя ВТ, добавить поля и обозвать их так как они назывались в первом(типы указывать не обязательно). И дальше мы просто работаем с ней как с пакетом запроса.
 Но и это не обязательно. Можно работать без создания описания(но возможно не всегда, иногда проявляются ошибки, возможно релизы чудили) т.е.:
 
Code
МВТ = Новый МенеджерВременныхТаблиц;
      Запрос = Новый Запрос;
      Запрос.МенеджерВременныхТаблиц = МВТ;
      Запрос.Текст =      
      "ВЫБРАТЬ
      |    ПродажиОбороты.Номенклатура КАК Номенклатура,
      |    СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество
      |ПОМЕСТИТЬ ДокТЧ
      |ИЗ
      |    РегистрНакопления.Продажи.Обороты(, &МоментВремени, Регистратор, ) КАК ПродажиОбороты
      |ГДЕ
      |    ПродажиОбороты.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры
      |
      |СГРУППИРОВАТЬ ПО
      |    ПродажиОбороты.Номенклатура
      |
      |ИНДЕКСИРОВАТЬ ПО
      |    Номенклатура";
      Параметры = Новый Массив(2);
      Параметры[0] = Дата;
      Параметры[1] = Регистратор;
      Момент = Новый (Тип("МоментВремени"),Параметры);      
      Запрос.УстановитьПараметр("МоментВремени", Момент);
      Запрос.УстановитьПараметр("ВидНоменклатуры", Перечисления.ВидыНоменклатуры.Товар);
           
      Результат = Запрос.Выполнить().Выгрузить();
           
      Блокировка = Новый БлокировкаДанных;
      ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.Себестоимость");
      ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
      ЭлементБлокировки.ИсточникДанных = Результат;
      ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
      Блокировка.Заблокировать();      
           
      Запрос = Новый Запрос;
      Запрос.МенеджерВременныхТаблиц = МВТ;
      Запрос.Текст = "
      |ВЫБРАТЬ
      |    ДокТЧ.Номенклатура КАК Номенклатура,
      |    ДокТЧ.Количество КАК Количество,
      |    СебестоимостьОстатки.Партия КАК Партия,
      |    ЕСТЬNULL(СебестоимостьОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
      |    ЕСТЬNULL(СебестоимостьОстатки.СуммаОстаток, 0) КАК СуммаОстаток
      |ИЗ
      |    ДокТЧ КАК ДокТЧ
      |  ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Себестоимость.Остатки(
      |    &МоментВремени,
      |    Номенклатура В
      |     (ВЫБРАТЬ
      |      ДокТЧ.Номенклатура
      |     ИЗ
      |      ДокТЧ КАК ДокТЧ)) КАК СебестоимостьОстатки
      |  ПО ДокТЧ.Номенклатура = СебестоимостьОстатки.Номенклатура
      |
      |УПОРЯДОЧИТЬ ПО
      |    Партия
      |ИТОГИ
      |    МАКСИМУМ(Количество)
      |ПО
      |    Номенклатура
      |АВТОУПОРЯДОЧИВАНИЕ";
      Запрос.УстановитьПараметр("МоментВремени", Новый Граница(Момент,ВидГраницы.Включая));
           
      Результат = Запрос.Выполнить();
 

 В моем решении я изначально создал один большой запрос, а потом ручками разделил его на 2. И во втором обошелся без создания описания.
Название: Задача 1.07
Отправлено: sv_mikh от Март 18, 2012, 07:46:23 am
Quote (LEOON)
В моем решении я изначально создал один большой запрос, а потом ручками разделил его на 2.

 Тоже так делаю.

 Или вариант 2: описываем запрос 1 в котором есть ВТ для следующего запроса, копируем его и вставляем во второй запрос... Полностью его пишем, а затем удаляем те запросы в пакете, которые уже будут присутствовать в МВТ ко времени выполнения запроса 2.
Название: Задача 1.07
Отправлено: Gyd от Март 18, 2012, 12:29:41 pm
LEOON, sv_mikh, спасибо. Сейчас попробую.

 Получилось. Ошибка банальная была: не было выполнения первого запроса, соответственно в МВТ ничего не попадало.
Название: Задача 1.07
Отправлено: Gyd от Март 19, 2012, 10:14:17 am
Мое решение:
 1. Запуск расчета себестоимости сделан ручным и автоматическим. Автоматически он запускается когда в базу заходит пользователь "ФоновоеЗадание", тогда стартует регламентное задание и запускается обработка по расчету (без открытия формы).
 2. Расчет себестоимости выполнен в обработке проведения Расходной. В пользовательском режиме при проведении идет списание остатков со склада, при программном проведении (с обработки) - идёт расчет себестоимости.
 3. Продажи записываются сначала предварительно, без себестоимости. Потом, при расчете себестоимости, они перезаписываются.
 4. При перепроведении документа Расходная движения по продажам и себестоимости не удаляются. Если при этом были изменения в документе - возникают новые движения по регистру остатков, движения по продажам и себестоимости остаются без изменений, но так как последовательность сдвинется на этот документ - его новые данные пересчитаются при восстановлении последовательности и возникнут новые движения по продажам и себестоимости.
 5. Граница сдвигается не последовательно, а на последний удачно проведенный документ (подсмотрел у sv_mikh).
 6. Если в процессе восстановления последовательности документ не может корректно перепровестись - восстановление прерывается.
Вложения:
Gyd_1_7.dt
Название: Задача 1.07
Отправлено: sv_mikh от Март 19, 2012, 05:14:09 pm
Quote (Gyd)
подсмотрел у sv_mikh

 smile А я в свою очередь эту фичу подсмотрел у Андрея Габца в WEB-курсе Решение оперативных задач средствами платформы "1С:Предприятие 8.2",
Название: Задача 1.07
Отправлено: Gyd от Март 19, 2012, 10:35:37 pm
Андрей Габец?
Название: Задача 1.07
Отправлено: sv_mikh от Март 19, 2012, 10:40:03 pm
Quote (Gyd)
Андрей Габец?

 Ага
Название: Задача 1.07
Отправлено: Gyd от Март 19, 2012, 10:59:27 pm
Прикольный мужик smile я у него учился на очных и на заочном курсах, хорошо объясняет.
Название: Задача 1.07
Отправлено: sv_mikh от Март 19, 2012, 11:01:16 pm
Quote (Gyd)
Прикольный мужик я у него учился на очных и на заочном курсах, хорошо объясняет.

 То и слово... Что прикольный. Для меня даже чересчур... Может конечно кому-то нравятся шоу.. Но по любому человек уважаемый.. Снимаю перед ним шляпу заочно smile
Название: Задача 1.07
Отправлено: Gyd от Март 19, 2012, 11:09:35 pm
Вы бы видели как он про приход-расход яблок и груш в регистре остатков объяснял. Уууу, я эти яблоки до сих пор помню smile Быстро стало понятно в чем суть регистра остатков smile
Название: Задача 1.07
Отправлено: sv_mikh от Март 19, 2012, 11:14:03 pm
Quote (Gyd)
Вы бы видели как он про приход-расход яблок и груш в регистре остатков объяснял. Уууу, я эти яблоки до сих пор помню Быстро стало понятно в чем суть регистра остатков

 Ага... А я про "резиновых ёжиков" на складе яблок без содрогания не могу вспомнить... Не говорил он Вам про резиновых ёжиков?
Название: Задача 1.07
Отправлено: Gyd от Март 19, 2012, 11:20:17 pm
Quote (sv_mikh)
А я про "резиновых ёжиков" на складе яблок без содрогания не могу вспомнить

 Ахахаха, Габец растёт :)))) не, у нас ежиков еще не было))))) видимо у нас была менее продвинутая версия обучения))))
Название: Задача 1.07
Отправлено: gavrikprog от Апрель 23, 2012, 10:53:43 pm
ужас, решаю эту задачу с наработками (методичка по оперативному учету) - 2 часа.
 При этом вчера методичку читал, в теме решения и лежит открытая.
 Конечно чуть притормаживаю, но все же... кодинга тут ого-го.

 И кто там на мисте после этого говорил, что 4 часа за глаза на экзамен? смотря что попадется.
Название: Задача 1.07
Отправлено: sv_mikh от Апрель 24, 2012, 06:22:12 am
Quote (gavrikprog)
ужас, решаю эту задачу с наработками (методичка по оперативному учету) - 2 часа.
 При этом вчера методичку читал, в теме решения и лежит открытая.
 Конечно чуть притормаживаю, но все же... кодинга тут ого-го.
 И кто там на мисте после этого говорил, что 4 часа за глаза на экзамен? смотря что попадется.

 А у меня эта задача самая любимая по ОУ... Делал ее за 1 час. Времени хватит, если задачи нарешивали.
Название: Задача 1.07
Отправлено: Minotavrik от Июнь 16, 2012, 12:04:55 pm
Посмотрел многие решения, особо ниче не понравилось, народ почему-то работает с последовательностью как то странно, либо устанавливает ее в конце (хотя может произойти ошибка), либо почему, то создает границы с помощью набора записей.

 Вот мой вариант решения.
Вложения:
Minotavrik_1_7.dt
Название: Задача 1.07
Отправлено: fimanich от Август 02, 2012, 12:00:13 pm
Всем привет!
 Подскажите, пожалуйста, насколько необходимо хранить себестоимость не только в регистре Партии, но и в регистре Продажи. Может быть в отчете выводить себестоимость из регистра Партии, а сумму продажи из регистра Продажи?
Название: Задача 1.07
Отправлено: Proza_I от Август 08, 2012, 03:28:54 pm
Пытаюсь решить задачу 1.07 используя видео с сайта see1c- больно хорошее объяснение.
 Но не получается. Ошибка известна ( при расчете себестоимости- выдается ошибка
 Обработка.РасчетСебестоимости.МодульМенеджера(14)}: Ошибка при вызове метода контекста (Выполнить)
    Результат = Запрос.Выполнить();
 по причине:
 {(7, 37)}: Не задано значение параметра "МоментВремени"
 РасходнаяНакладная.МоментВремени >= <<?>>&МоментВремени)
 Как исправить не знаю.
 Есть у кого идея? Спасибо заранее за помощь
Вложения:
Solution_107_1C.dt
Название: Задача 1.07
Отправлено: sv_mikh от Август 08, 2012, 04:27:33 pm
Quote (Proza_I)
Не задано значение параметра "МоментВремени"

 Передать в запрос параметр МоментВремени
Название: Задача 1.07
Отправлено: Oliver от Август 20, 2012, 08:07:57 am
sv_mikh, я посмотрел Ваше решение, мне кажется там есть ошибки.
 1. Когда Вы получете расходные для востановления желательно упорядочить по моменту времени а не дате (это мелочи).
 2. А вот в поледовательности у вас только док. Расходная, если мы задним числом изменим сумму прихода - списание не скорректируется.
 P.S. после того как написал заметил, что Вы уже сдали. Успехов!
Название: Задача 1.07
Отправлено: zikonza от Август 20, 2012, 04:34:58 pm
Quote (Proza_I)
Пытаюсь решить задачу 1.07 используя видео с сайта see1c- больно хорошее объяснение.
 Но не получается. Ошибка известна ( при расчете себестоимости- выдается ошибка
 Обработка.РасчетСебестоимости.МодульМенеджера(14)}: Ошибка при вызове метода контекста (Выполнить)
 Результат = Запрос.Выполнить();
 по причине:
 {(7, 37)}: Не задано значение параметра "МоментВремени"
 РасходнаяНакладная.МоментВремени >= <<?>>&МоментВремени)
 Как исправить не знаю.
 Есть у кого идея? Спасибо заранее за помощь


 Запрос.УстановитьПараметр("МоментВремени",МоментВремени());
Название: Задача 1.07
Отправлено: darkxxx от Август 21, 2012, 04:26:51 pm
Запрос.УстановитьПараметр("МоментВремени",?(РежимПроведения = РежимПроведенияДокумента.Неоперативный, МоментВремени(), Неопределено));Использовать только эту конструкцию ошибки не будет а при проверке остатков по механизму 8.2 с учетом движений текущего документа использовать через границу Включая. Что же вы так плохо форумы то читаете и не разбираете чужие решения то.
Название: Задача 1.07
Отправлено: Oliver от Август 22, 2012, 03:41:30 am
Вот моё решение. Я смотрел решения: kow1976, LEOON, Gyd и др. - у меня получилось другое.
 РН - 3 шт. 1. ОстаткиКол 2. ОстаткиСебестоимость 3. Продажи
 У меня в последовательность включены - приходы и расходы.
 Видел решения у которых входят только расходы? - как быть если изменилось кол Прихода?
 Теперь давайте разберёмся какой набор записей включать в последовательность, ОстаткиКол или ОстаткиСебестоимость?
 Если включим ОстаткиКол тогда при изменении суммы Прихода с неизменным количеством - последовательность не скинет границу.
 Соответственно расчет себестоимость не верна.
 Если включим ОстаткиСебестоимость - т.к. Расходная сама не делает движения по этому регистру, при перепроведении граница не сбивается, набор записей пустой. В этом случае если момент дока меньше момента границ - сбиваем границу руками.
 Себестоимость восстанавливается как обработкой так и регл. заданием.

 Реализовал: работу регл. задания в файловом режиме. На экзамене этого делать не нужно.
 Можно было бы реализовать: не сбивать границу при вводе Расходной задним числом если в ней только услуги.
 Жду критику))
Вложения:
Oliver_1_7.dt
Название: Задача 1.07
Отправлено: olwlad от Август 24, 2012, 10:40:24 am
Хотелось бы организовать списание себестоимости без перепроведения каждого документа.
 Одним запросом без записей наборов в цикле.
 Может кто нибудь поможет?
Название: Задача 1.07
Отправлено: Pavlyk от Август 24, 2012, 07:15:52 pm
Это невозможно
Название: Задача 1.07
Отправлено: olwlad от Август 24, 2012, 08:46:34 pm
Pavlyk,
 
Quote (Pavlyk)
Это невозможно


 А жаль.
Название: Задача 1.07
Отправлено: iomoe от Октябрь 02, 2012, 08:09:51 pm
Кому попалась эта задача подскажите надо на экзамене подключать обработчик ожидания?
Вложения:
iomoe_1_7.dt
Название: Задача 1.07
Отправлено: Pavlyk от Октябрь 02, 2012, 08:16:18 pm
На курсах Белоусов говорил что если попадется то нужно, но не факт что эта задача есть в билетах
Название: Задача 1.07
Отправлено: Andy63 от Октябрь 04, 2012, 08:36:19 pm
Посмотрел решение у sv mikh , оно усложнено в расчете себестоимости.

 Вот мой вариант. По большей части списано решенение с сайта see1c.ru. За что сайту большое спасибо . Здесь решение с обработчиком ожидания, для того чтобы регламентные задания работали в базе с файловым режимом.

 Критикуйте
Вложения:
_1.7__Andy.dt
Название: Задача 1.07
Отправлено: AlexOv от Октябрь 24, 2012, 07:17:14 pm
Всем доброго времени суток! Не было возможности посмотреть все ДТшники из данной темы ... может кто-то уже делал так же. Возникла мысль сделать в обработке проведения условие ... в зависимости от того, почему документ проводится (пользователь проводит или обработка - константа РежимВосстановления) ... выполняется либо 1ое либо 2ое условие. Интересны мнения. Спасибо заранее!
Название: Задача 1.07
Отправлено: AlexOv от Октябрь 24, 2012, 07:17:43 pm
пример)
Вложения:
6556473.dt
Название: Задача 1.07
Отправлено: DenisShiln от Ноябрь 07, 2012, 06:45:39 pm
Прочитал тему такого решения не нашел, прошу прокомментировать;

 1. Не заморачивался с последовательностью ввел константу ДатаПервого в которой хранил дату+время документа с которого надо рассчитывать себестоимость.
 2. Расчет себестоимости делал в ОбработкеПроведения()
 3. Из обработки вызывал проведение документов с ДополнительныеСвойства и двигал константу.
 4. При перепроведении пользователем удалял движения по себестоимости и продажам и двигал константу.

 Делал на время, так что многие вещи упростил...
 Скока примерно времени должно уйти на данную задачу (у меня ушло 1,5 часа)
 P.S. Раньше работал на семерке, тока начал на 8-ке решать задачи... не ругайтесь :-)
Вложения:
spec_17.dt
Название: Задача 1.07
Отправлено: ZolteR от Ноябрь 19, 2012, 03:31:39 pm
Всем доброго времени суток! Никак не могу победить регламентное задание, не получается его запустить
 1) Добавлен обработчик ожидания запускающий выполнение регламентных заданий
 2) Добавлено задание с расписанием в котором указана процедура которую надо выполнять

 И при этом не хочет запускаться сама процедура все перепробовал смотрел много примеров вроде все так же не могу найти изъян. Буду очень признателен за помощь
Вложения:
7688445.dt
Название: Задача 1.07
Отправлено: GvH от Ноябрь 19, 2012, 04:04:30 pm
ZolteR, ну дык... база то файловая.
 Как запустить регламентное задание читайте Радчинко "1С:Предприятие 8.2 Практическое пособие разработчика", стр. 622.
Название: Задача 1.07
Отправлено: Oliver от Ноябрь 19, 2012, 10:16:13 pm
GvH, ну он так и делает...
 ZolteR, я запустил в твоей базе регл. задание, но только новое - твоё не смог)
 Сделайте сравнение моей и Вашей базы. В обработчике ожидания скопировал и вставил имя процедуры. Сообщение в фоновом задании Вы не увидете. Нужно отдельно юзать ПолучитьСообщенияПользователю, но в ранних релизах метод не работал (В. Гилёв) - возможно сейчас уже работает.

Добавлено (19.11.2012, 22:16)
---------------------------------------------
DenisShiln, это единственная задача где необходима последовательность.


Вложения:
1979210.dt
Название: Задача 1.07
Отправлено: ZolteR от Ноябрь 20, 2012, 07:29:38 am
Ура!!! Разобрался, надо было переустановить галочку "Предопределенное" в рег. задании.
 Всем спасибо, на идею натолкнуло прочтение инфы по планировщику из Радченко
Вложения:
_1.07-ZolteR.dt
Название: Задача 1.07
Отправлено: Oliver от Ноябрь 20, 2012, 09:06:12 am
ZolteR, галка стояла, я помню)
Название: Задача 1.07
Отправлено: RedOff13 от Декабрь 21, 2012, 10:02:44 am
alice, Здравствуйте,если у вас есть Методичка А.Габец По оперативному учету, - не могли бы вы скинуть мне на почту - RedOff13      ЕСЛИ ВЫ ПОДЕЛИЛИСЬ СВОЕЙ ПОЧТОЙ, УДАЛИТЕ СООБЩЕНИЕ НЕМЕДЛЕННО ИЛИ БУДЕТЕ ЗАБАНЕНЫ. ЧИТАЙТЕ ПРАВИЛА!!!     mail.ru
Название: Задача 1.07
Отправлено: bakassa от Январь 15, 2013, 04:32:44 pm
Посмотрел решения. Не очень понял - а зачем создавать отдельный регистр под себестоимость? В чем проблема использования для ФИФО/ЛИФО ОстаткиНоменклатуры?

 Upd: а, всё, понял. Глупый вопрос.. smile
Название: Задача 1.07
Отправлено: AlexTimin от Февраль 13, 2013, 01:36:55 pm
Люди добрые, скажите пожалуйста, зачем в решении этой задачи надо использовать последовательность документов и при списании себестоимости передвигать границу последовательности?
Название: Задача 1.07
Отправлено: alex7six от Март 03, 2013, 10:18:29 pm
Мой вариант решения. без отчетов
Вложения:
2604805.dt
Название: Задача 1.07
Отправлено: leonid_kirienko от Март 07, 2013, 02:10:06 pm
Добрый день, коллеги. Посмотрел эту ветку, посмотрел варианты проведения движений по списанию себестоимости в отдельной процедуре, в менеджере.
 Может повторю чью-то мысль, но все же...
 если все-таки код списания оставить в ОбработкаПроведения, но отрабатывать по условию. Например:
 Если ПараметрыСеанса.РасчетСебестоимости тогда ...

 А флаг выставлять перед вызовом восстановления последовательности:
 ПараметрыСеанса.РасчетСебестоимости=Истина;
 Последовательности.ОстаткиНоменклатуры.Восстановить();
 ПараметрыСеанса.РасчетСебестоимости=Ложь;

 Только если граница стоит на РасходнойНакладной, то отступать на 1 док назад, чтобы она провелась "с флагом".
Название: Задача 1.07
Отправлено: karakym от Июнь 07, 2013, 07:52:53 pm
Добрый день, возможно ли обработку списание себестоимости выполнить следующей процедурой?
  
 Блокировка = Новый БлокировкаДанных;
 ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
 ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
 ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
 Блокировка.Заблокировать();
  
  
  Запрос = Новый Запрос;
  Запрос.Текст =
   "ВЫБРАТЬ
   | РегистрБухгалтерииОборотыДтКт.СубконтоДт1,
   | СУММА(ЕСТЬNULL(РегистрБухгалтерииОборотыДтКт.КоличествоОборотДт, 0)) КАК КоличествоДт,
   | СУММА(ЕСТЬNULL(РегистрБухгалтерииОборотыДтКт.СуммаОборот, 0)) КАК СуммаДт
   |ПОМЕСТИТЬ ВремТаб
   |ИЗ
   | РегистрБухгалтерии.РегистрБухгалтерии.ОборотыДтКт(, &КонПериода, , СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары), &ВидыСубконто, , , ) КАК РегистрБухгалтерииОборотыДтКт
   |
   |СГРУППИРОВАТЬ ПО
   | РегистрБухгалтерииОборотыДтКт.СубконтоДт1
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   | РегистрБухгалтерииОборотыДтКт.Регистратор КАК Регистратор,
   | РегистрБухгалтерииОборотыДтКт.СубконтоКт1 КАК Номенклатура,
   | СУММА(ВЫБОР
   |   КОГДА ВремТаб.КоличествоДт = РегистрБухгалтерииОборотыДтКт.КоличествоОборотКт
   |    ТОГДА ВремТаб.СуммаДт
   |   ИНАЧЕ ВЫРАЗИТЬ(ВремТаб.СуммаДт / ВремТаб.КоличествоДт * РегистрБухгалтерииОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
   |  КОНЕЦ) КАК СуммаСписания
   |ИЗ
   | РегистрБухгалтерии.РегистрБухгалтерии.ОборотыДтКт(&НачПериода, &КонПериода, Регистратор, , &ВидыСубконто, СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Товары), , ) КАК РегистрБухгалтерииОборотыДтКт
   |  ЛЕВОЕ СОЕДИНЕНИЕ ВремТаб КАК ВремТаб
   |  ПО РегистрБухгалтерииОборотыДтКт.СубконтоКт1 = ВремТаб.СубконтоДт1
   |ГДЕ
   | РегистрБухгалтерииОборотыДтКт.СуммаОборот = 0
   |
   |СГРУППИРОВАТЬ ПО
   | РегистрБухгалтерииОборотыДтКт.Регистратор,
   | РегистрБухгалтерииОборотыДтКт.СубконтоКт1
   |ИТОГИ
   | СУММА(СуммаСписания)
   |ПО
   | Регистратор";
  ВидыСубконто = Новый Массив;
  ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
  Запрос.УстановитьПараметр("КонПериода", КонецДня(ТекущаяДата()));
  Запрос.УстановитьПараметр("НачПериода", НачалоМесяца(ТекущаяДата()));
     Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
  Результат = Запрос.Выполнить();
  ВыборкаРегистратор = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
  Пока ВыборкаРегистратор.Следующий() Цикл
   // Вставить обработку выборки ВыборкаРегистратор
         НаборЗаписей = РегистрыБухгалтерии.РегистрБухгалтерии.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(ВыборкаРегистратор.Регистратор);
         НаборЗаписей.Прочитать();
   ВыборкаДетальныеЗаписи = ВыборкаРегистратор.Выбрать();
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Для Каждого Запись ИЗ НаборЗаписей Цикл
     Если Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = ВыборкаДетальныеЗаписи.Номенклатура Тогда
      Запись.Сумма = ВыборкаДетальныеЗаписи.СуммаСписания;
     КонецЕсли; 
    КонецЦикла;
   КонецЦикла;
   НаборЗаписей.Записать();
  КонецЦикла;

 Типовое решение из книги подготовки к специалисту очень громоздкое
Название: Задача 1.07
Отправлено: patchwork от Июнь 09, 2013, 10:15:57 pm
Регламентные задания работают только в SQL версии 1С
Название: Задача 1.07
Отправлено: bilateral от Июнь 11, 2013, 03:06:27 pm
Мое решение.
 В процедуре\функции, которая у вас будет указана в обработчике рег. задания не должно быть клиентских методов (типа сообщить). 
Цитата (patchwork)
Регламентные задания работают только в SQL версии 1С
Вовсе нет. В файловом варианте тоже могут работать. Другое дело что нужен бубен. Я сперва хотел сделать у себя запуск, но подумал - что на экзамене работа расчета в режиме рег задания не понадобится. Главное что бфы само рег задание было, и все настроено было правильно.

Добавлено (11.06.2013, 14:47)
---------------------------------------------

Цитата (karakym)
Добрый день, возможно ли обработку списание себестоимости выполнить следующей процедурой?
какие регистры бухгалтерии ? smile не мочите пожалуйста. Это же управленческий учет. Надо на регистрах накопления делать задание. smile

Добавлено (11.06.2013, 15:06)
---------------------------------------------

Цитата (leonid_kirienko)
если все-таки код списания оставить в ОбработкаПроведения, но отрабатывать по условию. Например:
вроде работает. только зачем вы в документах последовательности указали приходные накладные?
 достаточно было движения остатки указать. это уже приходные учтет. НО! в том случае если в них что то изменилось.

 А в вашем варианте приходные будут перепроводиться даже если в них ниччего не менялось. 

 Гилев. Базовый курс, Модуль 3. Глава 6. Видео про последовательности. он там про это как раз рассказывает.

 А насчет как делать - это как вы успеете на экзамене.
Вложения:
bilateral_upr_7.dt
Название: Задача 1.07
Отправлено: artfa от Июнь 16, 2013, 03:11:42 pm
мое решение, особенность этого решения - списание себестоимости происходит в одном общем модуле, без обращения к процедурам модуля менеджера (как в большинстве выложенных решений), обратите внимание на последовательность,  ошибок в решении не нашел, буду рад если кто укажет на таковые
Вложения:
1.7.dt
Название: Задача 1.07
Отправлено: bilateral от Июнь 17, 2013, 03:31:39 pm
Цитата (artfa)
буду рад если кто укажет на таковые
если бы я был экзаменатором - поставил бы -1 не вникая smile Где подсистемы. Ну не удобно же смотреть. Если вам главное было решить не вдаваясь в настройку "бантиков", то как же те остальные - кому вы предлагаете посмотреть свое решение?
Название: Задача 1.07
Отправлено: artfa от Июнь 17, 2013, 03:47:48 pm
Цитата (bilateral)
если бы я был экзаменатором - поставил бы -1 не вникая Где подсистемы
я считаю что подсистемы не важны, это так сказать косметика, а суть решения - правильно написать требуемый алгоритм, тем более что это не решение билета, а отдельной задачи и кому интересно без труда найдет нужные объекты в конфигурации и без подсистем
Название: Задача 1.07
Отправлено: bilateral от Июнь 17, 2013, 09:16:44 pm
Цитата (artfa)
суть решения - правильно написать требуемый алгоритм
1. Не очищаете движения в расходной. Как следствие:  Склад Юг купили 20. Продали 20. Все Ок. Перепроводим - не хватает 20 шт. В начале надо дописать Движения.ОстаткиНоменклатуры.Записать()
 2.КУпили 10 по 10 и 10 по 20.
 Списали 15.

 Процедура расчитала что списываем 10 по 10 и 5 по 20. Вроде все ок.

 Затем задним числом вводим 10 по 500 пересчитываем себестоимость - ничего не происходит.

 З.Ы. И да. Таки очень не удобно проверять. К регистру продажи пришлось идти только через "Все функции".
 Конечно, кому интересно - найдет все что нужно и без подсистем, но блин имейте уважение ко времени тех, кого вы просите проверить свое решение smile
Название: Задача 1.07
Отправлено: artfa от Июнь 17, 2013, 10:39:20 pm
1. Движение.ОстаткиНоменклатуры записывется только в обработке списание себестоимости, в расходной если не менялось ничего то при перепроведении ничего не происходит, если менялось, то Движение.Продажи делает сдвиг последовательности на эту дату,
 2.
Цитата (bilateral)
Затем задним числом вводим 10 по 500 пересчитываем себестоимость - ничего не происходит

 приходная то же делает сдвиг последовательности на свою дату.

 В обоих случаях при запусе обработки СписаниеСебестоимости происходит перерасчет всех расходных с даты границы последовательности.

 так что ваши доводы об ошибках меня не убедили, внимательно просмотрите крнфигурацию.

 3.
Цитата (bilateral)
З.Ы. И да. Таки очень не удобно проверять. К регистру продажи пришлось идти только через "Все функции".

 регистры нужны только для разработчика, для юсера есть отчеты
Название: Задача 1.07
Отправлено: patchwork от Июль 14, 2013, 03:07:18 pm
Цитата (lubja чет не видно списания фифо люфо в этой зааче ни у кого)
Незнайка, кстати, препод на курсах говорил, чтобы понять, какая структура регистров нужно, посмотрите на отчеты... из двух отчетов понятно, что нужно минимум 2 регистра... и так будет правильнее
Название: Задача 1.07
Отправлено: artfa от Июль 27, 2013, 05:27:25 pm
почти полностью переделал
Вложения:
0355388.dt
Название: Задача 1.07
Отправлено: sevod от Сентябрь 11, 2013, 09:59:48 pm
Посмотрел часть решений и возник вопрос по общей концепции решения данной задачи.
 Почему при проведении документа приходная накладная все заполняют не только регистр ОстаткиНоменклатуры, но и регистр Продажи? Для контроля остатков достаточно только регистра ОстаткиНоменклатуры, а регистр продажи логичнее в данной задаче в обработке заполнять. Сначала из приходной накладной заполнить, потом из расходной. По сути заполняя два регистра при проведении документа приходная накладная мы упрощаем задачу.

 Или если в задаче во фразе
 
Цитата
"При проведении документа  «Расходная накладная» необходимо производить только списание товара со склада"

  четко указано что в расходной накладной ничего лишнего, а про Приходную накладную ничего подобного не написано, то можно и упростить задачу?

 PS это больше на правах флуда. Сам буду решать так же как и все smile
Название: Задача 1.07
Отправлено: Grizlitlt от Сентябрь 25, 2013, 03:59:28 pm
Есть два вопроса при расмотрении задач столнулся с такой тенденцией порядка блокировок у всех сначала делается, так :
 Движения=РегистрыНакопления.СтоимостьНоменклатуры.СоздатьНаборЗаписей();
 Движения.Отбор.Регистратор.Установить(Регистратор);
 Движения.Записать();
 а после уже проводится получения реквизитов из табличной части для блокировки, блокировка и получения остатка, помоему логичнее сначала заблокировать регистр, а уж потом его очищать для определения остатков, иначе существует возможность, что мы регистр очистили(документ ранее был проведен), одновременно другой пользователь проводит документ такого же типа, видет что остатки есть (блокировки же нет и успевает списать), после  происходит блокировка данных уже в нашем документе, далее  документ определяет, что остатков нехватает и вызывает отказ и старые значения регистра возвращаются и получается, что товар списан, как и нашем документом, так и документом другого пользователя. Помоему несколько не правильно.

 Второй вопрос: по проверке остатков при рассчете себестоимости, нужно ли делать эту проверку, понятно если писать нормальную конфу то скорее всего надо, но в данном случае остатки уже проверяются при проведении документа, а при рассчте себестоимости они просто распределяються по партиям (если регистры в ручную не корректировались, а этого в задаче, не предусмотрено то и количество отличаться не может)
Название: Задача 1.07
Отправлено: nskripka от Сентябрь 25, 2013, 07:39:20 pm
Grizlitlt
 1 - Да. Вы правильно всё описали. Правильно сначала блокировать, затем очищать движения.
 2 - Количество контролировать нужно. Посмотрите, что будет, если пользователь задним числом уменьшил количество в поступлении. Может получиться так, что для последующих расходных накладных не хватит количества.
Название: Задача 1.07
Отправлено: java от Октябрь 02, 2013, 03:11:00 pm
Цитата (artfa)
почти полностью переделал

 А почему именно так ?

 Возможно  вы хотели избежать "запроса в цикле"?  (Кстати... Регистратор.Дата - тоже запрос в цикле)

 Но ведь это не просто "запрос в цикле", а как бы аналог "восстановление последовательности документов"(в любой типовой конфигурации), когда проводятся по порядку все документы последовательности от границы по текущую дату. Причем остатки контролируются на Момент времени проводимого документа.

 К тому же все равно не сможете избежать записи наборов в цикле по каждому регистратору отдельно.
Название: Задача 1.07
Отправлено: artfa от Октябрь 02, 2013, 05:02:13 pm
Цитата (java)
А почему именно так ?

 я уж и не помню
Цитата (java)
Возможно  вы хотели избежать "запроса в цикле"?  (Кстати... Регистратор.Дата - тоже запрос в цикле)

 иногда без этого не обойтись
Название: Задача 1.07
Отправлено: magrib от Октябрь 09, 2013, 05:39:29 pm
Уважаемые коллеги! Очень хочется глянуть на видео решения задачи 1.07 с сайта see1c.ru о котором все здесь говорят.
 Сам сайт переехал в новое место, где его заблокировали((
 Если у кого-то осталось видео с решением, дайте пожалуйста ссылку.
Название: Задача 1.07
Отправлено: artfa от Октябрь 20, 2013, 05:58:03 pm
упс
Название: Задача 1.07
Отправлено: Alex1979rak от Октябрь 28, 2013, 02:33:26 pm
Уважаемые форумчане. Начал решать билет № 1 (задача 1.7 изм) оперативный учет и не могу понять как же правильно рассчитывать себестоимость при списании товара. В некоторых решениях увидел регистр накопления себестоимость, но не понял для чего он нужен? Помогите, пожалуйста, разобраться.
Название: Задача 1.07
Отправлено: Калифорниец от Октябрь 29, 2013, 09:44:29 am
Alex1979rak, присоединяюсь к вопросу. Но подозреваю, это из-за отложенного списания партий. На момент обработки -движения уже будут в ОстаткиНоменклатуры, придется их менять, дописывать себестоимость и партию, разбивать на несколько записей. Поэтому нужно создавать новые записи со списанием и расчетом себестоимости в отдельные регистр Себестоимость.
 Но сомневаюсь в своих домыслах, что именно поэтому.

 И еще. В задании нигде не сказано про "Цену" значит можно ее нигде на хранить (ТЧ, ресурсы РН...) Достаточно же Количества и Суммы. Нет?

Добавлено (29.10.2013, 09:44)
---------------------------------------------
Еще объяснил бы кто - зачем при списании себестоимости еще и по продажам движения делать?

Название: Задача 1.07
Отправлено: Alex1979rak от Октябрь 29, 2013, 12:19:17 pm
Да. Кто бы объяснил.
Название: Задача 1.07
Отправлено: artfa от Октябрь 29, 2013, 06:25:04 pm
Цитата Калифорниец ()
Еще объяснил бы кто - зачем при списании себестоимости еще и по продажам движения делать?

 
Цитата
Цитата Alex1979rakВ некоторых решениях увидел регистр накопления себестоимость, но не понял для чего он нужен?


 1. в отчете продажи есть колонка себестоимость, поэтому в РН Продажи нужно учитыватьэто значение, а так как у нас  себестоимость расчитывается обработкой, то соответственно она делает запись в РН Продажи.
 2. У меня есть РН Остатки по складам и РН Остатки номенклатуры (в вашем случае РН Себестоимость), сделано это для того чтобы учитывать себестоимость номенклатуры в не зависимости от склада, т.к. у нас по условию списание количества происходит с конкретного склада, а списание себестоимости независимо от места хранения, а в зависимости от действующей учетной политики.
 надеюсь так понятно...
Название: Задача 1.07
Отправлено: Калифорниец от Октябрь 29, 2013, 06:41:01 pm
artfa, тогда зачем в РН Продажи ресурс Себестоимость? Если для отчета, но себестоимость в отчете можно слева по номенклатуре взять. И не нужно загромождать таблицы лишними данными и лишние движения формировать.
Название: Задача 1.07
Отправлено: artfa от Октябрь 29, 2013, 10:22:33 pm
Цитата Калифорниец ()
себестоимость в отчете можно слева по номенклатуре
не понял, если имеется ввиду что себестоимость брать из другого РН (не РН Продажи), то тогда придется мудрить в отчете - делать соединения по регистратору и номенклатуре, мне кажется проще сразу записывать себестоимость в РН Продажи, так по крайней мере для меня решение выглядит более проще для понимания.
Название: Задача 1.07
Отправлено: java от Октябрь 29, 2013, 11:24:53 pm
Цитата Калифорниец ()
Зачем в РН Продажи ресурс Себестоимость?

 1) Потому что это логично, при продаже посчитать сумму придажи и себестоимость.
 2) Иначе придется хитрить с запросом и фактически второй раз считать то что посчитано в расходнике
 3) Запрос по одному регистру -бац и готово
Название: Задача 1.07
Отправлено: Калифорниец от Октябрь 30, 2013, 07:57:34 am
java, убедили) хотя в типовой УПП в РН Продажи только продажные обороты, но зато в РН ПродажиСебестоимость хранят только себестоимость при продаже. Как раз видимо чтобы всё хорошо соединялось. Это, как я понял - третий вариант реализации.
Название: Задача 1.07
Отправлено: zorky от Ноябрь 15, 2013, 06:04:58 pm
Выкладываю решение 1.7(изм), текст как в первом(МоментВремени=15.10.2013) билете.
 Жду критики.
Вложения:
1487756.dt
Название: Задача 1.07
Отправлено: jeep от Ноябрь 26, 2013, 01:17:43 am
zorky, вполне рабочее решение построенное на 2х регистрах. Решение задачи основывалось под впечатлением после прочтения "Профессиональная разработка в системе 1с:Предприятие 8.2" в 2х томах раздела Бухгалтерский учет. Именно в этом разделе проводится аналогия регистра бухгалтерии и регистра накопления. В общем решение представляет собой хороший вариант, по-моему представлению, для сдачи экзамена специалист по платформе, т.к. требует наименьшее количество телодвижений и вполне можно уложиться в часик(а если постараться то и меньше).
Название: Задача 1.07
Отправлено: ReDvAlL от Декабрь 08, 2013, 12:09:37 pm
Всем доброго времени суток! wink Прочитав все 20 страниц заметил, что есть разные подходы определения самого первого документа для расчета себестоимости. Кто-то делает через константы, кто-то через последовательности. Под впечатлением решил задачу и так, и так. Только через последовательности расчет не работает...Если у кого будет время, посмотрите пожалуйста smile Хочу выразить благодарность Gyd и SergTH000. Их комментарии, советы и рассуждения очень помогают при решении, за что им огромное спасибо! И еще совет всем: читайте предыдущие страницы форума, так будет быстрее, чем если вы напишите свой вопрос и будете ждать ответа.
Вложения:
ReDvAlL_1.7.dt
Название: Задача 1.07
Отправлено: mikas-2008 от Декабрь 18, 2013, 04:23:37 pm
Цитата jeep ()
Кто-то делает через константы, кто-то через последовательности. Под впечатлением решил задачу и так, и так. Только через последовательности расчет не работает...

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

 Друзья, давайте будем уважать друг друга, строить подсистемы и соблюдать стандартизацию написания кода. Кто решает билеты, то мой совет: начните с решения первых задач, так как без опыта их решения, к данной задаче лучше не походить, а то задают глупейшие вопросы вроде: зачем нужен  оборотный регистр регистр накопления?  biggrin

 На счет использования 2-х регистров, согласен полностью. На одном регистре задачу не решить. А так же считаю, что просто необходимо использовать последовательности! Чуть позже выложу свой вариант решения. Задача интересная, так как использовать однотипные списания уже надоело.  happy
Название: Задача 1.07
Отправлено: mikas-2008 от Декабрь 19, 2013, 10:43:51 am
Уф... выполнил задание. Кому интересно, реализовал автоматический расчет остатков на толстом клиенте.  wink Не у многих это получилось, да и не многие это здесь делали.

 Задачу решил на 2-х регистрах остатки и одному обороты. Не вижу, как можно сделать по-другому. В последовательности включил и приходные накладные, так как их изменение может повлиять на расчет остатков, но в идеале нужно будет на всякий случай перепроводить документы расхода, а потом расчитывать продажи и себестоимость, но моя фантазия может далеко зайти и я не стал замарачиваться.

 Лично мне задача была интересна новым материалом, а именно регламентные задания и работа с последовательностями.

 Добавлено (19.12.2013, 10:43)
 ---------------------------------------------
 
Цитата jeep ()
Кто-то делает через константы, кто-то через последовательности. Под впечатлением решил задачу и так, и так

 Из чистого любопытсва посмотрел Ваш код. Решать по константам в принципе можно, но это оприори не правильно, так как выборка идет по документам, а этого 1С делать не рекомендует. Корни уходят далеко в 1С 7-ку, где небыло регистров из-за чего на базах с большим объемом доков, 1С ка начинала страшно тупить. Так что правильнее пользоваться заточенным под это дело инструментом, а именно последовательностью.

 А для реализации корректной обработки выполнения регламентного задания рекомендую делать так, как пишет Радченко:

 В модуле формы обработки:

 
Код
&НаКлиенте
 Процедура ПриОткрытии(Отказ)
    #Если ТолстыйКлиентУправляемоеПриложение Тогда
       ПодключитьОбработчикОжидания("ОбработкаЗаданий",3);
    #Иначе
       Предупреждение("Обработка может быть запущена только в толстом клиенте!");
    #КонецЕсли       
 КонецПроцедуры

 &НаКлиенте
 Процедура ОбработкаЗаданий()
    #Если ТолстыйКлиентУправляемоеПриложение Тогда
       ВыполнитьОбработкуЗаданий();
    #КонецЕсли
 КонецПроцедуры // ОбработкаЗаданий()

Вложения:
mikas_1.07.dt
Название: Задача 1.07
Отправлено: 32ops от Январь 06, 2014, 05:05:28 pm
Чет меня не комментируют, самому что-ли покомментировать))
 На веру не принимать, все перепроверять, могу и соврать, сам только начал готовиться.
 mikas-2008,
 1)Не понравилась последовательность
 
Цитата mikas-2008 ()
В последовательности включил и приходные накладные, так как их изменение может повлиять на расчет остатков
Для этого используются движения, влияющие на последовательность, а во входящие документы должны быть только те документы, которые регистрируем в последовательности. Приходную накладную нам регистрировать в последовательности незачем, ведь "допроводить" мы будем только расходные.
 2) В проведении расходной запись движений в начале - лишнее, в запросе излишества есть (сумму не нужно выбирать, группировка по цена, сумма не нужна, ну эт так, в принципе не суть важно,  МенеджерВТ.Закрыть(); - тоже кстати сам уничтожиться при выходе из процедуры)
 3) В РасчетеСебестоимости. Движения.Продажи.Записать(); - не нужно, регистр продажи в запросе не используются. ВидГраницы.Включая - бессмысленно, только что движения стерли, а если б не стерли, вообще бы ошибка была, хотя впринципе пофигу.
 Запрос по последовательности тоже не совсем понравилось - ДатаДо, вроде по заданию все документы проводить надо, смысл ДатаДо не ясен, и то что дата начала допроведения отдельным запросом вычисляется, сразу из последовательности все документы и брал бы. Кстати поэтому тип значения и проверяешь,что 1)
 Ну вроде все. Если откинуть мой бред, то ошибки - приходные в последовательности и лишняя запись в расходной и в расчете себестоимости в регистр продаж.
 Если че не так пишу, не в обиду. Как сам  понимаю, так и пишу, хоть какой-то коммент.

Добавлено (06.01.2014, 17:05)
---------------------------------------------
Интересная штука при перепроведении документа. Если граница последовательности правее нашего документа, последовательность на него откидывается, а для задачи нужно на предыдущий документ, т.к. в этом документе нам нужно пересчитать себестоимость. Кто-то это устранял? Если начинать перепроводить с границы, тоже нехорошо, дойдем до конца, а при следующем запуске последний документ опять перепроведем. По хорошему нужно двигать границу ручками при перепроведении или отмене проведения задним числом, но как это будет оценено на экзамене?

Название: Задача 1.07
Отправлено: giotto от Март 30, 2014, 03:37:50 pm
Вот так это должно выглядеть, на мой взгляд. Результат напряженной двухдневной работы, каноническое решение - микс Павла Чистова и Евгения Гилева. В принципе, можно и видео записать, если кому интересно.
Вложения:
Giotto_1.7.dt
Название: Задача 1.07
Отправлено: YFred от Апрель 16, 2014, 01:14:19 pm
Мое решение. Последовательность двигаю вручную назад при проведении документов приходных/расходных не оперативно, и вперед при заполнении себестоимости.
 Посмотрите, может что подскажите.
 Еще вопрос возник, нужна блокировка при проведении по партиям в обработке или нет?
Вложения:
YFred_1.7.dt
Название: Задача 1.07
Отправлено: SkaineT от Апрель 16, 2014, 08:13:35 pm
Выкладываю решение из 1 билета задачи 1.7(изм.) и задачи 2.11. Посмотрите пожалуйста, хотелось бы узнать правильно ли решение задач.
 Заранее Спасибо!
Вложения:
1Cv8_1.7_2.11.dt
Название: Задача 1.07
Отправлено: Demy от Апрель 23, 2014, 06:40:10 pm
Кто сможет посмотрите мое решение. Ничего я там не накосячил? smile Заранее благодарю.
Вложения:
Demy_1_7.dt
Название: Задача 1.07
Отправлено: YFred от Апрель 24, 2014, 10:44:25 am
Demy
 1. В приходном документе 
 
Код
ТабДвижений = Запрос.Выполнить().Выгрузить();
     
    Движения.ОстаткиНоменклатуры.Загрузить(ТабДвижений);
    Движения.ПартииНоменклатуры.Загрузить(ТабДвижений);

 по моему на экзамене использование выгрузки в таблицу значений является ошибкой. Снимут балы.
 2. В проведении расходной накладной по новому методу перед
 Движения.ОстаткиНоменклатуры.Записать();
 должно быть   Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина; 
 и у регистра должна стоять галочка "Разрешить разделение итогов"
 3. При проверке отрицательных остатков в запрос передается параметр
 Запрос.УстановитьПараметр("СписокНоменклатуры", ТабДвижений.ВыгрузитьКолонку("Номенклатура"));
 Думаю это не правильно, надо таблицу номенклатуры получать в запросе.
 4. Считаю, что  последовательность надо двигать и когда перепроводится  приходный документ. Т.к. это может влияет на себестоимость.
 5. В запросе где ты получаешь накладные для проведения по партиям. Надо делать вот так:
 
Код
Запрос.Текст = "ВЫБРАТЬ
                   |   ПоследовательностьПартии.Регистратор
                   |ИЗ
                   |   Последовательность.ПоследовательностьПартии КАК ПоследовательностьПартии
                   |ГДЕ
                   |   ПоследовательностьПартии.МоментВремени >= &ГраницаПоследовательности
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |   ПоследовательностьПартии.МоментВремени";
    Запрос.УстановитьПараметр("ГраницаПоследовательности", Последовательности.ПоследовательностьПартии.ПолучитьГраницу());
В запросе не правильно брать данные из документов. Тем более при твоем запросе ты получишь еще и непроведенные и удаленные документы

 Не запускал программу смотрел только код модулей, отчеты и процедуру списание партий не проверял.
Название: Задача 1.07
Отправлено: Demy от Апрель 24, 2014, 04:40:50 pm
YFred, спасибо что посмотрел.
 
Цитата YFred ()
1. В приходном документе Код
 ТабДвижений = Запрос.Выполнить().Выгрузить();
 
 Движения.ОстаткиНоменклатуры.Загрузить(ТабДвижений);
 Движения.ПартииНоменклатуры.Загрузить(ТабДвижений);

 по моему на экзамене использование выгрузки в таблицу значений является ошибкой. Снимут балы.
В некоторых источника встречал что так делать намного эффективней. Плюс к этому в типовых конфигурациях такой прием встречается повсеместно. Честно говоря сам не проверял. Если кто-то обладает достоверной информацией по этому поводу - прошу отпишитесь.
Цитата YFred ()
2. В проведении расходной накладной по новому методу передДвижения.ОстаткиНоменклатуры.Записать();
 должно быть Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
 и у регистра должна стоять галочка "Разрешить разделение итогов"

 Все время забываю про этот флаг, спасибо.
Цитата YFred ()
3. При проверке отрицательных остатков в запрос передается параметрЗапрос.УстановитьПараметр("СписокНоменклатуры", ТабДвижений.ВыгрузитьКолонку("Номенклатура"));
 Думаю это не правильно, надо таблицу номенклатуры получать в запросе.

 Да, наверное более правильно будет использовать менеджер временных таблиц.
Цитата YFred ()
4. Считаю, что последовательность надо двигать и когда перепроводится приходный документ. Т.к. это может влияет на себестоимость.
Кстати, в задача подразумевает что документы могут вводиться задним числом, проводиться не оперативно и т.д.? С последовательностями совсем запутался. Если в запросе ставить >= - то последний документ будет постоянно обрабатываться, что не очень правильно, если > - то первый не обрабатывается.
 Спасибо что заметил что в расчет берутся и помеченные на удаление и непроведенные, но при твоем запросе они берутся тоже, значит надо в запросе проверять проведен ли документ?

 Замечу еще один нюанс: при пере проведении расходника необходимо очищать движения по регистрам партий и продаж. Я правильно думаю?
Название: Задача 1.07
Отправлено: YFred от Апрель 24, 2014, 10:41:35 pm
Demy
Цитата
помеченные на удаление и непроведенные, но при твоем запросе они берутся тоже
точно... совсем забыл что в последовательности регистрируются документы при записи, а не при проведении,  надо значит условие поставить, чтобы отбирать только проведенные
 
Цитата
В некоторых источника встречал что так делать намного эффективней...
в ошибках за которые снимают балы есть такая ошибка: "выгрузка результата запроса в ТЗ без необходимости"
 и в видео уроках которые я смотрел говорили, что обход выборки из запроса работает намного быстрее, чем выгрузка в тз. Если не трудно сделай замер производительности с обходом выб орки в цикле и твоим методом для сравнения. Очень интересно.
Название: Задача 1.07
Отправлено: Demy от Апрель 25, 2014, 01:36:17 am
YFred, зачем такое спрашивать? Теперь всю ночь буду сидеть замерять производительность. smile
Название: Задача 1.07
Отправлено: Demy от Апрель 25, 2014, 02:36:27 am
Замеры производил в файл-серверном варианте. При увеличении табличной части выигрывать начинает метод с запросом, но при увеличении количества документов эффективность этого метода падает.

 Если кто-то сможет, то попробуйте замерять на клиент-серверном варианте. Заранее благодарен.
Вложения:
4761019.xls
Название: Задача 1.07
Отправлено: Nathalie от Июль 11, 2014, 07:32:12 pm
Цитата giotto ()
Вот так это должно выглядеть,
Из какой версии 1С выгружали дтшник?
Название: Задача 1.07
Отправлено: mulradik от Август 07, 2014, 11:26:48 am
Прошу желающих ознакомиться с моим решением. Читал, что в 8.3 рег. задания сами запускаются в параллельном потоке, но у меня не получилось.
 https://yadi.sk/d/W9eLu9bCZDD2J
 Заранее благодарю :-)
Название: Задача 1.07
Отправлено: masenshi от Сентябрь 04, 2014, 09:13:53 am
Цитата: mulradik;35663
Прошу желающих ознакомиться с моим решением.

 1) Если учетная политика не задана, то
 "Расчет себестоимости успешно завершен!"
 2) НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
 Зачем указывать параметр? Сможете объяснить?
 3) Себестоимость.МоментВремени > &Граница
 Думаю, что все же >= чтобы не исключался первый документ.
 4) Последовательности.Себестоимость.УстановитьГраницу(док.МоментВремени());
 Восстановление границы лучше вынести из цикла
 5) НаборЗаписей = РегистрыНакопления.ПартииТоваров.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Док);
    НаборЗаписей.Прочитать();
    НаборЗаписей.Очистить();
    НаборЗаписей.Записать();
 Лишние 2 строки:
 НаборЗаписей.Прочитать();
 НаборЗаписей.Очистить();
 6) Запрос.УстановитьПараметр("Момент", Новый Граница(док.МоментВремени(), ВидГраницы.Исключая));
 В данном случаем можно просто передать док.МоментВремени(), но это не ошибка.
 7) В отчете по остаткам итоги не нужны

 Пробежался бегло и только по коду
Название: Задача 1.07
Отправлено: unf13 от Сентябрь 04, 2014, 12:41:22 pm
Коллеги, такой вопрос. Данная задача входит в первый билет из "Актуальных билетов". При этом какое-либо упоминание о необходимости использования обработки и регламентного задания в тексте билета отсутствует и он упрощен (что обычная вещь для экзамена по сравнению со сборником). Юзер zorky, к примеру выложил ранее в ветке решение в соответствии с билетом. Как вы считаете, приемлемо ли тогда решать эту задачу без последовательности,регламентного задания и обработки, если в билете о ней не указано,так, как например, сделал zorky  или SkaineT ?

 По мне так эта задача тогда превращается в классическую задачу списания по партиям на 2 регистрах (про Продажи тоже упоминания в билете нет).

 Добавлено (04.09.2014, 12:41)
 ---------------------------------------------
 SkaineT, посмотрел ваше решение, не совсем понял, зачем выносить обработку проведения в общий модуль?
Название: Задача 1.07
Отправлено: masenshi от Сентябрь 05, 2014, 04:27:17 am
Цитата: zorky;32240
Жду критики.


 1) В приходной накладной все хорошо, а вот в расходной нет
 Зачем два раза подряд делать запись движений в регистр ОстаткиНоменклатуры?
 Движения.ОстаткиНоменклатуры.Записать();
 2) Блокировка на "всякий случай"?
 Движения.ОстаткиСтоимость.БлокироватьДляИзменения = Истина;
 Здесь я не уверен, но вот что говорит справка:
 Имеет смысл использовать, если проверка итогов регистра выполняется после записи и заблокировать нужно именно те комбинации, по которым записываются записи. В этом случае можно не использовать объект БлокировкаДанных.
 Думаю, что здесь нужно все-таки использовать БлокировкаДанных.

 3) Услуги попадают в ОстаткиНоменклатуры. Думаю, что в данной задаче это ошибка.
 4) Ну а в целом решение мне нравится

Добавлено (05.09.2014, 04:27)
---------------------------------------------

Цитата: SkaineT;34563
Выкладываю решение из 1 билета задачи 1.7(изм.) Посмотрите пожалуйста, хотелось бы узнать правильно ли решение задач.
 Заранее Спасибо!


 1) В приходной накладной запрос в цикле.
 Если НЕ ТекСтрокаТовары.Товар.Услуга Тогда

 2) Думаю, что данная задача должна быть решена только по новому методу
Название: Задача 1.07
Отправлено: Garfild17 от Октябрь 17, 2014, 04:34:38 pm
Выкладываю решение зад. 1.7(изм). https://yadi.sk/d/YjYnWRgoc6g8r
 Такое решение на экзамене зачтут?
 Как прикрепить файл на форуме?
Название: Задача 1.07
Отправлено: Eufes от Октябрь 18, 2014, 09:50:18 pm
masenshi

 1) Первая для очистки регистра, вторая запись в регистр.
 2) В случае с новым методом как раз надо использовать "БлокироватьДляИзменения".

 "... проверка итогов регистра выполняется после записи ...". В момент записи заблокируются " именно те комбинации, по которым записываются записи ..", после чего мы их прочитаем, чтобы определить ушли ли мы в минус.

 Но решение zorky мне не нравится в части регистров. На мой взгляд правильней было бы использовать оборотный регистр для фиксации продаж. Плюс все же должна быть обработка расчета себестоимости.

Добавлено (18.10.2014, 21:50)
---------------------------------------------
Прикреплять можно, если наберешь 10 сообщений, если не ошибаюсь или перейдешь в группу проверенных пользователей.

 

Цитата: Garfild17;36662
Такое решение на экзамене зачтут?


 Есть замечания по твоему решению:
 1. Например код где читаешь остатки регистра чтобы проверить на минус:

 Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
    МоментВремени = '00010101';
 Иначе
    МоментВремени = Новый Граница(МоментВремени(), ВидГраницы.Включая);      
 КонецЕсли;

 Здесь, я считаю, всегда надо ставить границу "Включая".

 А вот перед запросом который считывает данные по партиям необходимо поставить условие наподобие:

    ДвижениеПартий = Движения.ПартииТоваров;
    
    Если Режим = РежимПроведенияДокумента.Оперативный Тогда
       // чтобы не включать старые движения (несмотря на то, что мы не устанавливаем границу "включить" в запросе ниже)
       ДвижениеПартий.Очистить();
       // заблокируем очищаемые движения от чтения
       ДвижениеПартий.БлокироватьДляИзменения = Истина;
       ДвижениеПартий.Записать();
    КонецЕсли;

 Это расмотрено в статье Павла Чистова
 http://xn----1-bedvffifm4g.xn--p1ai/articles/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D1%8F-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B0-%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2 %D0%BA%D0%B8/

 Комментарии //16 и //17

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

 
 3. Умножение лучше производить в числителе, т.к. если в знаменателе есть риск дробного числа типа 99,99999999
 Т.е. вместо СуммаКСписанию = ВыборкаПартия.СуммаОстаток / ВыборкаПартия.КоличествоОстаток * КоличествоКСписанию;
 СуммаКСписанию = КоличествоКСписанию * ВыборкаПартия.СуммаОстаток / ВыборкаПартия.КоличествоОстаток;

 4. Поступления сразу делают движения в регистр продажи. Это интересно, но думаю, что "красивей" надо было бы сделать три регистра ОстаткиПоСкладу ОстаткиПоПартиям и Продажи (оборотный)
 Например как сделали mikas-2008 и giotto.
 У них, на мой взгляд, лучшие решения. Только вот у giotto нет блокировок.
 Нет отчета по продажам. Т.е. если поступление делает запись сразу в регистр, то как потом будет выглядеть отчет по продажам если самой продажи не было?
Название: Задача 1.07
Отправлено: Garfild17 от Октябрь 19, 2014, 11:09:27 am
Спасибо Eufes за комментарий.

 
Цитата: Eufes;36665
2. Расчет себестоимости ты делаешь сразу, а не обработкой. Я думаю, это серьезная ошибка)
 Я думаю это сильное упрошение задачи, т.к. сложность состояла в том, чтобы определять те документы которые нуждаются в расчете.


 Понятно, что можно себестоимость считать обработкой. Вопрос в том, такой упрощенный вариант пройдет для изм. варианта задачи?
Название: Задача 1.07
Отправлено: Eufes от Октябрь 19, 2014, 11:33:13 am
Насчет этого сложно говорить однозначно. Как мне кажется, минус 3 балла уж не поставят, но за такое упрощение бал уж наверняка отнимут.
Название: Re: Задача 1.07
Отправлено: garnett_2187 от Ноябрь 08, 2014, 10:06:05 pm
Сдавал вчера, так обрадовался что попался легкий билет - и через строчку прочел задание...
короче была всего одна ошибка и она была только в ОУ))))  хотя был уверен что с оперативной задачей все нормально а вот с БУ и СПР будут проблем куча...

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

П.С. какой бы легкой не была задача - перечитывайте каждое слово и лучше уточняйте...
Название: Re: Задача 1.07
Отправлено: Нуралиев от Ноябрь 21, 2014, 11:44:48 pm
Слушайте хочу попробовать сам сделать по этому выложенные конфы не смотрел, вот объясните правильно ли я понял, расходная списывает только кол-во товара со склада и все, сумма списывается при расчете себестоимости в регламентном задании?
"Обработка должна автоматом находить первый документ нуждающийся в расчете себестоимости"
примерно так?
берем товары у которых не списаны со склада смотрим его регистратор (расходную) упорядочиваем по дате и рассчитываем себестоимость начиная с первого?
по другому даже не знаю как я найду первый документ нуждающийся в расчете себестоимости по какому признаку.
Название: Re: Задача 1.07
Отправлено: Qthylf от Декабрь 01, 2014, 11:37:47 am
делал через последовательности, оценитe решение, кому не лень :)
Название: Re: Задача 1.07
Отправлено: Odines от Декабрь 02, 2014, 02:53:12 pm
Будьте добры, покритикуйте решение)
Название: Re: Задача 1.07
Отправлено: axel_work от Февраль 09, 2015, 02:53:45 pm
Будьте добры, покритикуйте решение)

Я только начал задачки на спеца решать, если интересно мое мнение:
1. Получение метода списания на текущую дату на мой взгляд не совсем верно (В общем модуле). Если скажем провести задним числом расходную от 29.12.14, а с 01.01.15 поменялся метод списания, то получится все декабрьские после 29.12 пойдут с новым методом списания. Либо не задним числом проводить, а скажем, просто редко эта обработка запускается, раз в несколько дней.

2. Совсем мелочь. В обработке проведения расходной - Остатки.Записывать = Истина - ни к чему, далее вызывается метод Записать();

3. Не совсем понял. В запросе получения документов для списания партий (в общем модуле) разве не получается что последний проведенный документ исключается из списка списания себестоимости? Поскольку при записи документа граница установится на него, и запрос по последовательности не покажет этот документ.
Название: Re: Задача 1.07
Отправлено: max1m1ch от Март 17, 2015, 10:09:59 am
Кто нибудь гляньте пожалуйста
Название: Re: Задача 1.07
Отправлено: rusmosav от Март 17, 2015, 04:02:49 pm
Прощу оценить.
Обработку "РасчетСебестоимости" подключил к подсистеме "ОперативныйУчет". Но в меню и в командном интерфейсе не виднеется. И рег.св. "УчетнаяПолитика".
Название: Re: Задача 1.07
Отправлено: Pamazillo от Апрель 27, 2015, 05:53:30 pm
Правильнее скорей всего последовательности использовать. Там особо и мудрить не надо.
А если запросом то у меня заработало так:

//

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

СГРУППИРОВАТЬ ПО
   ОстаткиТоваровНаСкладах.Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ОстаткиТоваровНаСкладах.Регистратор КАК Регистратор
ИЗ
   РегистрНакопления.ОстаткиТоваровНаСкладах КАК ОстаткиТоваровНаСкладах
ГДЕ
   НЕ ОстаткиТоваровНаСкладах.Регистратор В
            (ВЫБРАТЬ
               ВТРасчитаннаяСебестоимость.Регистратор
            ИЗ
               ВТРасчитаннаяСебестоимость КАК ВТРасчитаннаяСебестоимость)

СГРУППИРОВАТЬ ПО
   ОстаткиТоваровНаСкладах.Регистратор

УПОРЯДОЧИТЬ ПО
   Регистратор

//

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

З.Ы.: А кому-нить удалось избежать списания в цикле?
Название: Re: Задача 1.07
Отправлено: Solitar от Май 02, 2015, 11:41:50 am
Покритикуйте решение. Отчет не делал. Реализовал через последовательности.
Название: Re: Задача 1.07
Отправлено: ThirdKing от Май 03, 2015, 10:24:31 am
Покритикуйте решение. Отчет не делал. Реализовал через последовательности.
А могу я где то посмотреть условие этой задачи, так как Задача 1.07 по текущим билетам из сборника не соответствует решению. Актуальный сборник могу скинуть по запросу на почту, так как здесь ссылку на него публиковать запрещено. То что это актуальный сборник на текущий момент подтвердил Павел Белоусов на прошлой неделе.
Название: Re: Задача 1.07
Отправлено: naumenko_alex от Май 11, 2015, 01:56:33 pm
Выкладываю своё решение без последовательностей и без запросов в цикле.  :D
Название: Re: Задача 1.07
Отправлено: Такелажник от Май 20, 2015, 08:08:14 am
Покритикуйте решение. Отчет не делал. Реализовал через последовательности.
А могу я где то посмотреть условие этой задачи, так как Задача 1.07 по текущим билетам из сборника не соответствует решению. Актуальный сборник могу скинуть по запросу на почту, так как здесь ссылку на него публиковать запрещено. То что это актуальный сборник на текущий момент подтвердил Павел Белоусов на прошлой неделе.

Не могли бы выслать актуальный сборник на почту rr.free1c      ЕСЛИ ВЫ ПОДЕЛИЛИСЬ СВОЕЙ ПОЧТОЙ, УДАЛИТЕ СООБЩЕНИЕ НЕМЕДЛЕННО ИЛИ БУДЕТЕ ЗАБАНЕНЫ. ЧИТАЙТЕ ПРАВИЛА!!!     gmail.com
Название: Re: Задача 1.07
Отправлено: gamletv1 от Май 29, 2015, 01:08:54 pm
Выкладываю своё решение без последовательностей и без запросов в цикле.  :D
Я такой же подход выбрал, но судя по всему экзаменаторы хотят видеть решение через последовательности, и чихать им на то что там запросы в цикле, ведь по сути данная обработка выполняет групповое перепроведение документов, и там без запросов в цикле никак.
Ну а теперь по твоей задачи: во-первых в запросе условие "Продажи.Себестоимость = 0", будет тебе всегда возвращать документы с услугами (ведь в услугах себестоимость всегда 0), во-вторых при проведении расходной накладной надо бы сгруппировать таб. часть это общее требование при решении задач. Ну и еще мне не совсем понравилось использование константы для хранение даты последнего документа, все таки константы предназначены для хранения не изменяемых или редко изменяемых данных. А в целом решение имеет право на существование, тем более, что я тоже сначала ее так решил)))
Название: Re: Задача 1.07
Отправлено: Sergey-Vl от Июнь 18, 2015, 10:14:34 am
Покритикуйте, пожалуйста, мое решение.
Название: Re: Задача 1.07
Отправлено: tatyana_fiesta от Июль 24, 2015, 08:48:07 am
Попалась данная задача на Экзамене.
ОШИБКА: Задача по оперативной части решена в значительно упрощенной постановке. По условию задачи количественный и стоимостной учет ведется в разных аналитиках. Для того, чтобы остатки выходили в ноль одного регистра недостаточно.
Сначала я посмотрела на отчет (на экзамене только один отчет по "Остаткам товаров" с количеством товара), поэтому быстренько решила без расчетов себестоимости. Прочитав ещё раз и ещё раз задачу, поняла, что условие про себестоимость нужно сделать, даже если не надо для отчета, но сделала в том же регистре "ОстаткиНоменклатуры" (времени немного подумать уже не было). Итого: неправильно решила =(
На самом деле я не совсем поняла свою ошибку:
"По условию задачи количественный и стоимостной учет ведется в разных аналитиках. Для того, чтобы остатки выходили в ноль одного регистра недостаточно. " Может кто-нибудь пояснит мне?!  ???
Название: Re: Задача 1.07
Отправлено: alex1248 от Июль 24, 2015, 09:41:58 am
"По условию задачи количественный и стоимостной учет ведется в разных аналитиках. Для того, чтобы остатки выходили в ноль одного регистра недостаточно. "
Нужны 2 РН: Один - с измерениями Номенклатура, Склад и ресурсом Количество, т.е. только для учета остатков. Второй - с измерениями Номенклатура, Партия и ресурсами Количество, Сумма. Контроль остатков по "новой" методике.
Название: Re: Задача 1.07
Отправлено: tatyana_fiesta от Июль 24, 2015, 10:35:44 am
"По условию задачи количественный и стоимостной учет ведется в разных аналитиках. Для того, чтобы остатки выходили в ноль одного регистра недостаточно. "
Нужны 2 РН: Один - с измерениями Номенклатура, Склад и ресурсом Количество, т.е. только для учета остатков. Второй - с измерениями Номенклатура, Партия и ресурсами Количество, Сумма. Контроль остатков по "новой" методике.
А почему всё таки нельзя РН (остатки) - с измерениями Номенклатура, Склад, Партия и ресурсами Количество, Сумма?
Название: Re: Задача 1.07
Отправлено: alex1248 от Июль 24, 2015, 11:13:54 am
"По условию задачи количественный и стоимостной учет ведется в разных аналитиках. Для того, чтобы остатки выходили в ноль одного регистра недостаточно. "
Нужны 2 РН: Один - с измерениями Номенклатура, Склад и ресурсом Количество, т.е. только для учета остатков. Второй - с измерениями Номенклатура, Партия и ресурсами Количество, Сумма. Контроль остатков по "новой" методике.
А почему всё таки нельзя РН (остатки) - с измерениями Номенклатура, Склад, Партия и ресурсами Количество, Сумма?
Похоже, что в этом случае действительно нельзя. Например, вы списываете со склада "А", а остаток по партии, подлежащей списанию в соответствии с учетной политикой, находится на складе "Б". В результате такого списания остатки "поплывут". И это, если не говорить про рекомендуемую методику контроля остатков.
Название: Re: Задача 1.07
Отправлено: Doom2w от Август 18, 2015, 02:12:53 pm
Покритикуйте решение. Отчет не делал. Реализовал через последовательности.
А могу я где то посмотреть условие этой задачи, так как Задача 1.07 по текущим билетам из сборника не соответствует решению. Актуальный сборник могу скинуть по запросу на почту, так как здесь ссылку на него публиковать запрещено. То что это актуальный сборник на текущий момент подтвердил Павел Белоусов на прошлой неделе.

Скинь пожалуйста сборник.
Название: Re: Задача 1.07
Отправлено: Luffy от Август 26, 2015, 02:13:52 pm
Покритикуйте решение. Отчет не делал. Реализовал через последовательности.
А могу я где то посмотреть условие этой задачи, так как Задача 1.07 по текущим билетам из сборника не соответствует решению. Актуальный сборник могу скинуть по запросу на почту, так как здесь ссылку на него публиковать запрещено. То что это актуальный сборник на текущий момент подтвердил Павел Белоусов на прошлой неделе.

   Cкинь пожалуйста сборник i      ЕСЛИ ВЫ ПОДЕЛИЛИСЬ СВОЕЙ ПОЧТОЙ, УДАЛИТЕ СООБЩЕНИЕ НЕМЕДЛЕННО ИЛИ БУДЕТЕ ЗАБАНЕНЫ. ЧИТАЙТЕ ПРАВИЛА!!!     x.ru
Название: Re: Задача 1.07
Отправлено: GROOVY от Август 26, 2015, 08:53:07 pm
Покритикуйте решение. Отчет не делал. Реализовал через последовательности.
А могу я где то посмотреть условие этой задачи, так как Задача 1.07 по текущим билетам из сборника не соответствует решению. Актуальный сборник могу скинуть по запросу на почту, так как здесь ссылку на него публиковать запрещено. То что это актуальный сборник на текущий момент подтвердил Павел Белоусов на прошлой неделе.

   Cкинь пожалуйста сборник i      ЕСЛИ ВЫ ПОДЕЛИЛИСЬ СВОЕЙ ПОЧТОЙ, УДАЛИТЕ СООБЩЕНИЕ НЕМЕДЛЕННО ИЛИ БУДЕТЕ ЗАБАНЕНЫ. ЧИТАЙТЕ ПРАВИЛА!!!     x.ru

У нас не приветствуется попрошайничество.
Название: Re: Задача 1.07
Отправлено: Zeskord от Сентябрь 03, 2015, 03:34:32 pm
Покритикуйте, пожалуйста, мое решение.

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

Предлагаю покритиковать мое решение. https://cloud.mail.ru/public/4jxk/9N3aXFz3f
Название: Задача 1.07
Отправлено: zorky от Сентябрь 04, 2015, 02:36:35 pm
Всем привет,возобновил подготовку, основательно на этот раз надеюсь, время появилось))  в новом сборнике по 8.3 - такие же задачи, вообще без изменений. Значит дело в "Такси" только, или как??? В чем мулька то)

Решил сделать 1.7  - помню давно делал но неправильно немного, сейчас вроде всё до мелочей - покритикуйте пожалуйста кому не трудно, кто готовится. Постараюсь критиковать взаимно,это полезно как никак)
Название: Re: Задача 1.07
Отправлено: Quantum81 от Сентябрь 04, 2015, 03:23:36 pm
zorky, а где расчет себестоимости?  ???
Название: Re: Задача 1.07
Отправлено: zorky от Сентябрь 05, 2015, 09:15:52 am
Э...По заданию себестоимость рассчитывается либо регламентно, либо по команде, там есть обработка "Расчет себестоимости"...код в общий модуль положил. Вы вероятно не начинали делать ещё эту задачу ? ;-)
Название: Re: Задача 1.07
Отправлено: Quantum81 от Сентябрь 05, 2015, 02:23:16 pm
Нашел!  :D   Прошу прощения. Брал условие из билетов. И сидел экспериментировал на примере этой задачи с режимом оперативного проведения.
  Тогда могу озвучить свои вопросы :    8) 

1) В проведении Расходной накладной:  Движение.Склад = Выборка.Склад;  ведь Движение.Склад = Склад; должно отработать корректно.
2) Во всех решениях видел и сам использую реквизит справочника ВидНоменклатуры типа Перечисление.ВидНоменклатуры. В том числе в задаче идущей со сборником сделано так же.
3)Регламентное задание - не стоит галка "Предопределенное". Т.е. задание не создастся после запуска.
4) В формировании движений при расчете СС: При получении ТЧ документа, есть группировка но не укзано СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма)

По оперативному проведению, я так и не понял как же правильно. На столе лежит книга "Реализация прикладных задач в системе 1С: 8.2" и методичка с курса  решение бух задач. Там конкретно сказано, что для ускорения оперативного проведения нужно сделать две вещи
   а) Момент времени  = Непределено, чтобы обращаться к итогом минуя записи движений
   б) Исключить возможность внесения записей в РН будущим числом.

А так по решению, я наверно больше подглядел. Особенно по последовательностям. Как с ними работать.

Название: Re: Задача 1.07
Отправлено: zorky от Сентябрь 05, 2015, 04:10:14 pm
1) В проведении Расходной накладной:  Движение.Склад = Выборка.Склад;  ведь Движение.Склад = Склад; должно отработать корректно.

 - вооот, точно,спасибо - исправил! Вообще мелкие ошибки со стороны всегда виднее - сам бы не увидел! Голова идёт кругом от обилия задач и решений))) В выборке вообще Склад не нужен,хватит:  Номенклатура,кол-во и услуга.

2) Во всех решениях видел и сам использую реквизит справочника ВидНоменклатуры типа Перечисление.ВидНоменклатуры. В том числе в задаче идущей со сборником сделано так же.

Поделитесь пожалуйста этой задачей ??? - у меня её нету, не видел. Это какой номер?  (Но Имхо, булево проще, и для юзера - галочку поставить на услуге, и для кода. С перечислениями придётся ставить для каждого товара - вид - товар, неудобно пипец)) Но на экзамене видимо придётся его использовать, раз требуют.

3)Регламентное задание - не стоит галка "Предопределенное". Т.е. задание не создастся после запуска.

 - Ок, исправил!

4) В формировании движений при расчете СС: При получении ТЧ документа, есть группировка но не укзано СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма)
 - И здесь странно, вроде конструктор всегда автоматом это делал, нет? ))) а если как у меня было - как он сгруппирует Номенклатуру, точнее что будет с Суммой? странно...

По оперативному проведению, я так и не понял как же правильно. На столе лежит книга "Реализация прикладных задач в системе 1С: 8.2" и методичка с курса  решение бух задач. Там конкретно сказано, что для ускорения оперативного проведения нужно сделать две вещи
   а) Момент времени  = Непределено, чтобы обращаться к итогом минуя записи движений
     - да, это в старой технологии списания.   
 б) Исключить возможность внесения записей в РН будущим числом.
      - а тут не совсем понял) как это.

А так по решению, я наверно больше подглядел. Особенно по последовательностям. Как с ними работать.
 - ага сам только с ней разобрался - у Гилёва в продвинутом хорошо показано как с ней работать. Просто, в принципе.
Спасибо! Скоро 1.6 буду ковырять, ну её вообще тут расковыряли по страшному)) Буду ориентироваться на решение GROOVY.

[/quote]
Название: Re: Задача 1.07
Отправлено: rblssenok от Сентябрь 16, 2015, 07:38:49 am
Здравствуйте. И всё таки какой метод решения будет правильным - через последовательность и регламентное задание или списывать себестоимость сразу всё при проведении расходной? Учитывая, что в билетах задача не содержит отсылок к проведению регламентным заданием и такое условие имеется только в сборнике задач?
Название: Re: Задача 1.07
Отправлено: yarikuz от Сентябрь 24, 2015, 05:36:12 pm
Приветствую, вот такой вариант решения можно ли признать правильным?
Название: Re: Задача 1.07
Отправлено: goodwin от Сентябрь 27, 2015, 11:25:25 pm
Приветствую, вот такой вариант решения можно ли признать правильным?

а как же реализовать в расходной накладной условие с услугой по доставке ?

цитата из условия задачи:

"Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части."
Название: Re: Задача 1.07
Отправлено: yarikuz от Сентябрь 28, 2015, 11:06:53 am
Дрить, точно, про услугу забыл...
Название: Re: Задача 1.07
Отправлено: EMelihoff от Декабрь 14, 2015, 08:48:26 pm
Строка 116 модуля объекта Расходная  Движения.СебестоимостьПартий.Очистить(); затем вы записываете Движения.СебестоимостьПартий.Записать();, разве не очистится движение при записи?

Название: Re: Задача 1.07
Отправлено: yarikuz от Декабрь 22, 2015, 09:35:19 am
Из тех соображений, что в некоторых случаях при повторном проведении, движения могут быть прочитаны из документа и добавиться к созданным в процедуре проведения...
Название: Re: Задача 1.07
Отправлено: munko_s от Январь 17, 2016, 10:03:33 am
 Здравствуйте .Вот мое решение,без отчетов,они там примитивные,можете посмотреть перерасчет
Название: Re: Задача 1.07
Отправлено: halaspavel от Январь 26, 2016, 09:12:14 pm
Здравствуйте! посмотрите пожалуйста мое решение, хотелось бы немного критики :)
Название: Re: Задача 1.07
Отправлено: CSiER от Март 09, 2016, 04:04:47 pm
Здравствуйте! посмотрите пожалуйста мое решение, хотелось бы немного критики :)
Здравствуйте. Сам готовлюсь недавно - поэтому у меня больше вопросов по решению, чем критики (интересно Ваше мнение) :D
1. РН накопления "ОстаткиНоменклатуры" режим блокировок Автоматический и не стоит галочка разделения итогов (фишки каркасной конфигурации).
2. Зачем наличие проверки установленной учетной политики в обработке проведения приходной накладной (думаю, лучше перенести в расходную)?
3. Нужно ли делать явное левое соединение со справочником номенклатуры для простых запросов (план запроса ведь получится простой - автоматом добавится левое соединение)?
4. Думаю, в случае вывода сообщений нужно явно получать из запроса Представление объекта (номенклатура, склад в расходной накладной).
5. Опечатка в обработке проведения расходной "ВыборкаДетальныеЗаписи.ЭтоУслуга" (не хватает "НЕ ...") - попробуйте добавить услугу - всегда будет выводиться ошибка.
6. Не хватает строчки "Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;" в обработке проведения расходной накладной перед "Движения.ОстаткиНоменклатуры.Записать()".
7. В расчетеСебестоимости в запросе нужно изменить условие "СебестоимостьНоменклатуры.МоментВремени >= &МоментВремени" на "СебестоимостьНоменклатуры.МоментВремени > &МоментВремени" (иначе документ границы всегда будет попадать в выборку).
8. Нужно ли делать движения по РН "Продажи" при проведении расходной накладной (ведь себестоимость не рассчитана) ?
9. В расчете себестоимости нужно добавить "НаборДанныхПартии.БлокироватьДляИзменения = Истина;" перед "НаборДанныхПартии.Записать();".
10. В расчете себестоимости "ЕСТЬNULL(ОстаткиПартииНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток" - возможно, isnull тут лишнее (ведь количество уже проверили)?
11. В расчете себестоимости нужно добавить в "   Если ЗначениеЗаполнено(ПоследнийМоментВремени) Тогда
      Последовательности.СебестоимостьНоменклатуры.УстановитьГраницу(ПоследнийМоментВремени);
   КонецЕсли;
" проверку на Отказ (иначе вне зависимости от наличия ошибок при проведении граница будет установлена).
12. Нужно ли делать проверки на отрицательные остатки по партиям при расчете себестоимости, если контроль остатков уже есть при проведении расходной накладной?
Название: Re: Задача 1.07
Отправлено: flyerink от Март 13, 2016, 05:50:32 pm
Решил сделать 1.7  - помню давно делал но неправильно немного, сейчас вроде всё до мелочей - покритикуйте пожалуйста кому не трудно, кто готовится. Постараюсь критиковать взаимно,это полезно как никак)
Решение понравилось.
Но я решил его немного модифицировать. Я создал переменную в общем модуле проводить расчет СС. И все что связано с движениями делал в модуле дока Расходная накладная..
Думаю так удобнее когда все с одного места выполняется...
Пример выкладываю.
Название: Re: Задача 1.07
Отправлено: Головлев Владислав от Март 21, 2016, 04:27:25 pm
Здравствуйте! Посмотрите пожалуйста мое решение) Я совсем еще начинающий, поэтому для меня очень важно каждое замечание)
Название: Re: Задача 1.07
Отправлено: clancy08 от Март 22, 2016, 03:33:10 pm
Добрый день, оценить пожалуйста решение.
Название: Re: Задача 1.07
Отправлено: clancy08 от Март 22, 2016, 04:05:45 pm
Здравствуйте! Посмотрите пожалуйста мое решение) Я совсем еще начинающий, поэтому для меня очень важно каждое замечание)
Ну, тут вообще по моему скромному мнению все плохо.
ОбработкаПроведения РасходнаяНакладная ветка Иначе:
1) Процедура СписатьКоличество()
В запросе можно просто писать НЕ СПРНоменклатура.ЭтоУслуга, не понятно зачем столько соединений, когда достаточно было взять просто тч РасходнаяНакладнаяСписокНоменклатуры.
В таблице остатки Склад в параметрах проверил, а номенклатуру нет.
Вообще если решили списывать таким методом, то достаточно было к сгруппированной ТЧ левым соединением прикрепить остатки , там 1 строка Склад+Номенклатура будет.
Но тут нужно решать по новому методу, тобишь делаем движение потом проверяем не ушли ли в минус.
Движения.ОстаткиНоменклатуры.Записать();
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;

прочитайте для чего это нужно, смысла писать не было.
2)
Движения.ОстаткиНоменклатурыПартия.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
Вы туда движения ни делаете, зачем ставить флаг записывать?

3) Я не думаю, что стоит каждый раз перезаписывать документ. Нужно работать с набором записей регистра
4) Лишнее естьНулл ЕСТЬNULL(ОстаткиНоменклатурыПартияОстатки.СебеСтоимостьОстаток, 0)

Мне кажется решение подразумевает работу с последовательностью, а не списком документов.

Название: Re: Задача 1.07
Отправлено: Головлев Владислав от Март 23, 2016, 06:49:37 am
Здравствуйте! Посмотрите пожалуйста мое решение) Я совсем еще начинающий, поэтому для меня очень важно каждое замечание)
Ну, тут вообще по моему скромному мнению все плохо.
ОбработкаПроведения РасходнаяНакладная ветка Иначе:
1) Процедура СписатьКоличество()
В запросе можно просто писать НЕ СПРНоменклатура.ЭтоУслуга, не понятно зачем столько соединений, когда достаточно было взять просто тч РасходнаяНакладнаяСписокНоменклатуры.
В таблице остатки Склад в параметрах проверил, а номенклатуру нет.
Вообще если решили списывать таким методом, то достаточно было к сгруппированной ТЧ левым соединением прикрепить остатки , там 1 строка Склад+Номенклатура будет.
Но тут нужно решать по новому методу, тобишь делаем движение потом проверяем не ушли ли в минус.
Движения.ОстаткиНоменклатуры.Записать();
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;

прочитайте для чего это нужно, смысла писать не было.
2)
Движения.ОстаткиНоменклатурыПартия.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
Вы туда движения ни делаете, зачем ставить флаг записывать?

3) Я не думаю, что стоит каждый раз перезаписывать документ. Нужно работать с набором записей регистра
4) Лишнее естьНулл ЕСТЬNULL(ОстаткиНоменклатурыПартияОстатки.СебеСтоимостьОстаток, 0)

Мне кажется решение подразумевает работу с последовательностью, а не списком документов.

Спасибо за замечания! Всё понятно, кроме одного момента:
 Как можно было взять просто тч РасходнаяНакладнаяСписокНоменклатуры, если нужен еще и склад, с которого будем списывать номенклатуру, а склад - это реквизит документа?
Название: Re: Задача 1.07
Отправлено: clancy08 от Март 23, 2016, 08:07:41 am
Здравствуйте! Посмотрите пожалуйста мое решение) Я совсем еще начинающий, поэтому для меня очень важно каждое замечание)
Ну, тут вообще по моему скромному мнению все плохо.
ОбработкаПроведения РасходнаяНакладная ветка Иначе:
1) Процедура СписатьКоличество()
В запросе можно просто писать НЕ СПРНоменклатура.ЭтоУслуга, не понятно зачем столько соединений, когда достаточно было взять просто тч РасходнаяНакладнаяСписокНоменклатуры.
В таблице остатки Склад в параметрах проверил, а номенклатуру нет.
Вообще если решили списывать таким методом, то достаточно было к сгруппированной ТЧ левым соединением прикрепить остатки , там 1 строка Склад+Номенклатура будет.
Но тут нужно решать по новому методу, тобишь делаем движение потом проверяем не ушли ли в минус.
Движения.ОстаткиНоменклатуры.Записать();
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;

прочитайте для чего это нужно, смысла писать не было.
2)
Движения.ОстаткиНоменклатурыПартия.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
Вы туда движения ни делаете, зачем ставить флаг записывать?

3) Я не думаю, что стоит каждый раз перезаписывать документ. Нужно работать с набором записей регистра
4) Лишнее естьНулл ЕСТЬNULL(ОстаткиНоменклатурыПартияОстатки.СебеСтоимостьОстаток, 0)

Мне кажется решение подразумевает работу с последовательностью, а не списком документов.

Спасибо за замечания! Всё понятно, кроме одного момента:
 Как можно было взять просто тч РасходнаяНакладнаяСписокНоменклатуры, если нужен еще и склад, с которого будем списывать номенклатуру, а склад - это реквизит документа?

ВЫБРАТЬ РАЗЛИЧНЫЕ
   Т.Номенклатура,
   Т.Ссылка.Склад
ИЗ
   Документ.ПродажаТоваров.СписокТоваров КАК Т
ГДЕ
   Т.Ссылка = &Ссылка
Название: Re: Задача 1.07
Отправлено: Головлев Владислав от Март 23, 2016, 10:48:08 am
Здравствуйте! Посмотрите пожалуйста мое решение) Я совсем еще начинающий, поэтому для меня очень важно каждое замечание)
Ну, тут вообще по моему скромному мнению все плохо.
ОбработкаПроведения РасходнаяНакладная ветка Иначе:
1) Процедура СписатьКоличество()
В запросе можно просто писать НЕ СПРНоменклатура.ЭтоУслуга, не понятно зачем столько соединений, когда достаточно было взять просто тч РасходнаяНакладнаяСписокНоменклатуры.
В таблице остатки Склад в параметрах проверил, а номенклатуру нет.
Вообще если решили списывать таким методом, то достаточно было к сгруппированной ТЧ левым соединением прикрепить остатки , там 1 строка Склад+Номенклатура будет.
Но тут нужно решать по новому методу, тобишь делаем движение потом проверяем не ушли ли в минус.
Движения.ОстаткиНоменклатуры.Записать();
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;

прочитайте для чего это нужно, смысла писать не было.
2)
Движения.ОстаткиНоменклатурыПартия.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
Вы туда движения ни делаете, зачем ставить флаг записывать?

3) Я не думаю, что стоит каждый раз перезаписывать документ. Нужно работать с набором записей регистра
4) Лишнее естьНулл ЕСТЬNULL(ОстаткиНоменклатурыПартияОстатки.СебеСтоимостьОстаток, 0)

Мне кажется решение подразумевает работу с последовательностью, а не списком документов.

Спасибо за замечания! Всё понятно, кроме одного момента:
 Как можно было взять просто тч РасходнаяНакладнаяСписокНоменклатуры, если нужен еще и склад, с которого будем списывать номенклатуру, а склад - это реквизит документа?

ВЫБРАТЬ РАЗЛИЧНЫЕ
   Т.Номенклатура,
   Т.Ссылка.Склад
ИЗ
   Документ.ПродажаТоваров.СписокТоваров КАК Т
ГДЕ
   Т.Ссылка = &Ссылка
Благодарю! Не знал, что так можно)
Название: Re: Задача 1.07
Отправлено: glow2020 от Апрель 25, 2016, 05:47:42 pm
Во многих решениях встречается такой запрос на определение границы последовательности
ВЫБРАТЬ
ДокументыПродажи.Регистратор,
ДокументыПродажи.МоментВремени КАК МоментВремени,
ДокументыПродажи.Регистратор.Представление
ИЗ
Последовательность.ДокументыПродажи КАК ДокументыПродажи
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Последовательность.ДокументыПродажи.Границы КАК ДокументыПродажиГраницы
ПО ДокументыПродажи.МоментВремени >= ДокументыПродажиГраницы.МоментВремени
ГДЕ
ДокументыПродажи.Регистратор.Проведен

УПОРЯДОЧИТЬ ПО
МоментВремени
Так же в курсах Гилева встречал такое. Как при этом быть с условием ДокументыПродажи.МоментВремени >= ДокументыПродажиГраницы.МоментВремени, если >= то всегда будет пересчитываться последний документ, если  >, первый измененный в последовательности не будет пересчитан. И как быть, если указано не передвигать границу последовательности (ее передвигают программно) и данные еще не введены, граница равна '00010101' и такой запрос ничего не возвращает.
Название: Re: Задача 1.07
Отправлено: goodwin от Май 31, 2016, 10:47:56 pm
Во многих решениях встречается такой запрос на определение границы последовательности
ВЫБРАТЬ
ДокументыПродажи.Регистратор,
ДокументыПродажи.МоментВремени КАК МоментВремени,
ДокументыПродажи.Регистратор.Представление
ИЗ
Последовательность.ДокументыПродажи КАК ДокументыПродажи
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Последовательность.ДокументыПродажи.Границы КАК ДокументыПродажиГраницы
ПО ДокументыПродажи.МоментВремени >= ДокументыПродажиГраницы.МоментВремени
ГДЕ
ДокументыПродажи.Регистратор.Проведен

УПОРЯДОЧИТЬ ПО
МоментВремени
Так же в курсах Гилева встречал такое. Как при этом быть с условием ДокументыПродажи.МоментВремени >= ДокументыПродажиГраницы.МоментВремени, если >= то всегда будет пересчитываться последний документ, если  >, первый измененный в последовательности не будет пересчитан. И как быть, если указано не передвигать границу последовательности (ее передвигают программно) и данные еще не введены, граница равна '00010101' и такой запрос ничего не возвращает.

Не знаю верно или нет. Мои мысли:

1. По поводу >= или >. Выбираю >=

Если документ проводится задним числом и нарушает последовательность, то граница перемещается на его момент времени.

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

2. По поводу данные не введены.

Самое простое сделать условие, которое учитывает такой вариант событий через "Если Тогда".

У меня другой вопрос.

Если мы должны перепровести документ, обязательно ли это делать через получить объект и провести в запросе?

или же есть вариант работать с движениями этого самого документа, а точнее с набором записей в регистре, не получая данный объект?
Название: Re: Задача 1.07
Отправлено: ComradeKite от Сентябрь 20, 2016, 11:07:04 am
Всем доброго времени суток!
Решил задачу с последовательностью и регламентным заданием. Три регистра. В расходной новая методика в списании себестоимости старая. Последовательность настроена на регистр себестоимости. Отчеты сделаны один в один как в задании. Постарался учесть все моменты. Если будет у кого желание, посмотрите плиз, может что то и забыл.
А так сделал вроде на "пять"))
Название: Re: Задача 1.07
Отправлено: kuzyara от Сентябрь 26, 2016, 01:09:58 pm
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?
Название: Re: Задача 1.07
Отправлено: kuzyara от Сентябрь 27, 2016, 05:08:19 am
Последовательность настроена на регистр себестоимости.
А разве последовательность не должна сбиваться после ввода расходной накладной задним числом или отмены проведения?
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 02, 2016, 09:42:29 am
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?

если конечно говорить о моем решении то:

Пункт а не совсем понятно.
Если поместить функцию списания так же как и процедуру ВыполнитьСписаниеИСместитьГП, то можно.
Только не понятно причем тут дополнительные свойства.

Пункт б. Функцию можно расположить во многих местах с глобальным контекстом, но я так рассуждал. Если функция что то делает с расходнымИ документАМИ, значит надо в менеджере этих расходных документов. Логическая группировка. В модуль объекта она не подойдет по понятным причинам.


 
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 02, 2016, 09:58:18 am
Последовательность настроена на регистр себестоимости.
А разве последовательность не должна сбиваться после ввода расходной накладной задним числом или отмены проведения?

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

Что касается отмены проведения, то все отработает нормально.

Даже если у прихода отменить проведение, то граница сдвинется.




Название: Re: Задача 1.07
Отправлено: kuzyara от Октябрь 04, 2016, 08:12:25 am
Подскажите, правильно ли я понимаю механизм "Последовательности":
а) Перемещение при проведении - Не использовать - это значит что при проведении документа граница самостоятельно вперед двигаться не будет
б) Входящие документы - РасходнаяНакладная - это значит что в таблицу регистрации попадут только расходники, приходники же не нужны - их движения не требуют перепроведения
в) Движения - СебестоимостьТоваров - это значит что при записи движений по этому регистру граница будет откинута назад на момент времени, состоящий из регистратора и периода набора?

Зачем в диалоге выбора движений, влияющих на последовательность присутствуют непериодические регистры сведений без регистратора?
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 04, 2016, 12:45:00 pm
Подскажите, правильно ли я понимаю механизм "Последовательности":
а) Перемещение при проведении - Не использовать - это значит что при проведении документа граница самостоятельно вперед двигаться не будет
б) Входящие документы - РасходнаяНакладная - это значит что в таблицу регистрации попадут только расходники, приходники же не нужны - их движения не требуют перепроведения
в) Движения - СебестоимостьТоваров - это значит что при записи движений по этому регистру граница будет откинута назад на момент времени, состоящий из регистратора и периода набора?

Зачем в диалоге выбора движений, влияющих на последовательность присутствуют непериодические регистры сведений без регистратора?

а) правильно
б) в таблицу последовательностей попадут только расходники, но граница последовательности может содержать любой документ - регистратор регистра, который как раз и выбирается в "Движения,влияющих на последовательность". Потом как раз и определяется из этого документа граница. Приходников нет в последовательности, потому что их перепроводить не надо.

Вот допустим взяли вы старый приходник и перепровели, изменили что то.
У вас граница перескочит на дату этого приходника, потому что приходник является регистратором регистра себестоимостьтоваров.

Ну а расчет себестоимости уже возьмет уже от "даты приходника" выберет расходники из последовательности и перепроведет. То есть приходники то перепроводить не надо из за изменений приходников, а расходники надо перепроводить и из за изменений приходников и из за изменений расходников.

в) граница будет откинута назад при изменении движений. Если ничего не поменяется то ничего не откинется.

"Зачем показываются регистры без регистратор?", на этот вопрос у меня точного ответа нет, могу лишь предположить, в связи с тем что надо выбрать сначала регистр, а потом уже регистраторы)))

Название: Re: Задача 1.07
Отправлено: Magvay78 от Октябрь 04, 2016, 05:24:08 pm
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?

Есть пару замечаний:
1. В документе Приходная при движении, ты используешь два цикла построенные конструктором, это ошибка, минус сколько то.
2. Лично я считаю, что граница должна сдвигаться как при отмене Приходной, так и Расходной.
3. У тебя расчет себестоимость проводит "непроведенные" документы, тоже думаю ошибка.
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 04, 2016, 07:32:27 pm
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?

Есть пару замечаний:
1. В документе Приходная при движении, ты используешь два цикла построенные конструктором, это ошибка, минус сколько то.
2. Лично я считаю, что граница должна сдвигаться как при отмене Приходной, так и Расходной.
3. У тебя расчет себестоимость проводит "непроведенные" документы, тоже думаю ошибка.

1:
Вот правила,
http://static.1c.ru/rus/partners/training/files/ATT83PL.rtf
читал, не увидел где это написано, есть возможность показать в каком это пункте?

2:
ну да, так она и двигается от обоих типов документов. она будет двигаться от всех регистраторов регистра на которую настроена.

3:
да, тут не однозначно получается. С одной стороны последовательность надо восстанавливать и проводить(перепроводить) все. С другой стороны документ может и не хотели проводить, а списание себестоимости его проведет. Ну а с третьей стороны что он тогда делает в документах, если его не хотели проводить)))

Соглашусь, надо проводить(перепроводить) все, поэтому условие
СписаниеСебестоимости.Регистратор.Проведен
надо убрать.

Спасибо за просмотр! 
Название: Re: Задача 1.07
Отправлено: GH0STexe от Октябрь 05, 2016, 05:55:49 am
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?

Есть пару замечаний:
1. В документе Приходная при движении, ты используешь два цикла построенные конструктором, это ошибка, минус сколько то.
2. Лично я считаю, что граница должна сдвигаться как при отмене Приходной, так и Расходной.
3. У тебя расчет себестоимость проводит "непроведенные" документы, тоже думаю ошибка.

1:
Вот правила,
http://static.1c.ru/rus/partners/training/files/ATT83PL.rtf
читал, не увидел где это написано, есть возможность показать в каком это пункте?

2:
ну да, так она и двигается от обоих типов документов. она будет двигаться от всех регистраторов регистра на которую настроена.

3:
да, тут не однозначно получается. С одной стороны последовательность надо восстанавливать и проводить(перепроводить) все. С другой стороны документ может и не хотели проводить, а списание себестоимости его проведет. Ну а с третьей стороны что он тогда делает в документах, если его не хотели проводить)))

Соглашусь, надо проводить(перепроводить) все, поэтому условие
СписаниеСебестоимости.Регистратор.Проведен
надо убрать.

Спасибо за просмотр!

1. Написано или не написано в правилах не важно - снизят баллы за неоптимальность
2.
3.Если документ не проведен, то он не учкаствует в учете. Трогать его невкоем случае не надо
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 05, 2016, 08:58:28 am
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?

Есть пару замечаний:
1. В документе Приходная при движении, ты используешь два цикла построенные конструктором, это ошибка, минус сколько то.
2. Лично я считаю, что граница должна сдвигаться как при отмене Приходной, так и Расходной.
3. У тебя расчет себестоимость проводит "непроведенные" документы, тоже думаю ошибка.

1:
Вот правила,
http://static.1c.ru/rus/partners/training/files/ATT83PL.rtf
читал, не увидел где это написано, есть возможность показать в каком это пункте?

2:
ну да, так она и двигается от обоих типов документов. она будет двигаться от всех регистраторов регистра на которую настроена.

3:
да, тут не однозначно получается. С одной стороны последовательность надо восстанавливать и проводить(перепроводить) все. С другой стороны документ может и не хотели проводить, а списание себестоимости его проведет. Ну а с третьей стороны что он тогда делает в документах, если его не хотели проводить)))

Соглашусь, надо проводить(перепроводить) все, поэтому условие
СписаниеСебестоимости.Регистратор.Проведен
надо убрать.

Спасибо за просмотр!

1. Написано или не написано в правилах не важно - снизят баллы за неоптимальность
2.
3.Если документ не проведен, то он не учкаствует в учете. Трогать его невкоем случае не надо


3. Сколько людей столько и мнений))))
Название: Re: Задача 1.07
Отправлено: GH0STexe от Октябрь 05, 2016, 10:07:52 am
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?

Есть пару замечаний:
1. В документе Приходная при движении, ты используешь два цикла построенные конструктором, это ошибка, минус сколько то.
2. Лично я считаю, что граница должна сдвигаться как при отмене Приходной, так и Расходной.
3. У тебя расчет себестоимость проводит "непроведенные" документы, тоже думаю ошибка.

1:
Вот правила,
http://static.1c.ru/rus/partners/training/files/ATT83PL.rtf
читал, не увидел где это написано, есть возможность показать в каком это пункте?

2:
ну да, так она и двигается от обоих типов документов. она будет двигаться от всех регистраторов регистра на которую настроена.

3:
да, тут не однозначно получается. С одной стороны последовательность надо восстанавливать и проводить(перепроводить) все. С другой стороны документ может и не хотели проводить, а списание себестоимости его проведет. Ну а с третьей стороны что он тогда делает в документах, если его не хотели проводить)))

Соглашусь, надо проводить(перепроводить) все, поэтому условие
СписаниеСебестоимости.Регистратор.Проведен
надо убрать.

Спасибо за просмотр!

1. Написано или не написано в правилах не важно - снизят баллы за неоптимальность
2.
3.Если документ не проведен, то он не учкаствует в учете. Трогать его невкоем случае не надо


3. Сколько людей столько и мнений))))

3. Причем тут мнение? Почитайте хотя бы основы. А с таким отношением я думаю рановато вам на спеца всё таки
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 05, 2016, 10:36:18 am
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?

Есть пару замечаний:
1. В документе Приходная при движении, ты используешь два цикла построенные конструктором, это ошибка, минус сколько то.
2. Лично я считаю, что граница должна сдвигаться как при отмене Приходной, так и Расходной.
3. У тебя расчет себестоимость проводит "непроведенные" документы, тоже думаю ошибка.

1:
Вот правила,
http://static.1c.ru/rus/partners/training/files/ATT83PL.rtf
читал, не увидел где это написано, есть возможность показать в каком это пункте?

2:
ну да, так она и двигается от обоих типов документов. она будет двигаться от всех регистраторов регистра на которую настроена.

3:
да, тут не однозначно получается. С одной стороны последовательность надо восстанавливать и проводить(перепроводить) все. С другой стороны документ может и не хотели проводить, а списание себестоимости его проведет. Ну а с третьей стороны что он тогда делает в документах, если его не хотели проводить)))

Соглашусь, надо проводить(перепроводить) все, поэтому условие
СписаниеСебестоимости.Регистратор.Проведен
надо убрать.

Спасибо за просмотр!

1. Написано или не написано в правилах не важно - снизят баллы за неоптимальность
2.
3.Если документ не проведен, то он не учкаствует в учете. Трогать его невкоем случае не надо


3. Сколько людей столько и мнений))))

3. Причем тут мнение? Почитайте хотя бы основы. А с таким отношением я думаю рановато вам на спеца всё таки


В том то и дело что я прочитал и не мало, могу аргументировать каждый свой шаг.

А вот вы аргументируйте вот это высказывание
"Написано или не написано в правилах не важно - снизят баллы за неоптимальность"
На основании каких умозаключений вы вот это пишите?
Объясните всем....

А то выглядит ваше высказывание примерно так "да пофик мне на всех, я так считаю и все".

Вот мой аргумент:
Посетив комплексные курсы от 1С, одних из самых именитых преподов "Бел.....в" и не разу не увидел что делает какую то оптимизацию он в приходной, могу и я делать выводы что всякая оптимизация с циклами, полная трата времени. Прочитав правила для экзамена я не увидел там что надо оптимизировать циклы. То есть обращаю внимание еще раз препод делал так, как сделал это я с двумя циклами. На мой личный взгляд цикл не стоит много времени, то есть разницы для компа сколько он прокрутит его в памяти особо нет. Я такты процессора считать не собираюсь, все важно в меру. Поэтому ваш аргумент может иметь место, а может и не иметь.
Но препод говорил о других оптимизациях, вот их то как раз я и применял.

Попробуйте вы теперь аргументировать, на основании чего ваш вывод строится?

PS: Я что то не помню, чтобы я кого то спрашивал когда мне идти и куда мне идти.
 
 


Название: Re: Задача 1.07
Отправлено: GH0STexe от Октябрь 05, 2016, 11:32:01 am
Что правильней для отложенного расчета себестоимости:
а) Из обработки вызывать проведение документов с ДополнительныеСвойства
или
б) Экспортная функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) в модуле менеджера?

Есть пару замечаний:
1. В документе Приходная при движении, ты используешь два цикла построенные конструктором, это ошибка, минус сколько то.
2. Лично я считаю, что граница должна сдвигаться как при отмене Приходной, так и Расходной.
3. У тебя расчет себестоимость проводит "непроведенные" документы, тоже думаю ошибка.

1:
Вот правила,
http://static.1c.ru/rus/partners/training/files/ATT83PL.rtf
читал, не увидел где это написано, есть возможность показать в каком это пункте?

2:
ну да, так она и двигается от обоих типов документов. она будет двигаться от всех регистраторов регистра на которую настроена.

3:
да, тут не однозначно получается. С одной стороны последовательность надо восстанавливать и проводить(перепроводить) все. С другой стороны документ может и не хотели проводить, а списание себестоимости его проведет. Ну а с третьей стороны что он тогда делает в документах, если его не хотели проводить)))

Соглашусь, надо проводить(перепроводить) все, поэтому условие
СписаниеСебестоимости.Регистратор.Проведен
надо убрать.

Спасибо за просмотр!

1. Написано или не написано в правилах не важно - снизят баллы за неоптимальность
2.
3.Если документ не проведен, то он не учкаствует в учете. Трогать его невкоем случае не надо


3. Сколько людей столько и мнений))))

3. Причем тут мнение? Почитайте хотя бы основы. А с таким отношением я думаю рановато вам на спеца всё таки


В том то и дело что я прочитал и не мало, могу аргументировать каждый свой шаг.

А вот вы аргументируйте вот это высказывание
"Написано или не написано в правилах не важно - снизят баллы за неоптимальность"
На основании каких умозаключений вы вот это пишите?
Объясните всем....

А то выглядит ваше высказывание примерно так "да пофик мне на всех, я так считаю и все".

Вот мой аргумент:
Посетив комплексные курсы от 1С, одних из самых именитых преподов "Бел.....в" и не разу не увидел что делает какую то оптимизацию он в приходной, могу и я делать выводы что всякая оптимизация с циклами, полная трата времени. Прочитав правила для экзамена я не увидел там что надо оптимизировать циклы. То есть обращаю внимание еще раз препод делал так, как сделал это я с двумя циклами. На мой личный взгляд цикл не стоит много времени, то есть разницы для компа сколько он прокрутит его в памяти особо нет. Я такты процессора считать не собираюсь, все важно в меру. Поэтому ваш аргумент может иметь место, а может и не иметь.
Но препод говорил о других оптимизациях, вот их то как раз я и применял.

Попробуйте вы теперь аргументировать, на основании чего ваш вывод строится?

PS: Я что то не помню, чтобы я кого то спрашивал когда мне идти и куда мне идти.

Странное дело получается. Я на курсах на которых был я как раз объясняли момент по поводу циклов. Ну а большая претензия как раз к проведению "непроведенных" документов. Не надо перепроводить непроведенный документ. Он же ниначто не влияет. А если его перепровести, то данные совсем другими будут. Не так ли?
Название: Re: Задача 1.07
Отправлено: kuzyara от Октябрь 05, 2016, 12:04:50 pm
Цитировать
3.Если документ не проведен, то он не участвует в учете. Трогать его не в коем случае не надо
Проверил в типовой УТ, не проведенные действительно не трогаются.
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 05, 2016, 12:09:38 pm
Цитировать
Странное дело получается. Я на курсах на которых был я как раз объясняли момент по поводу циклов. Ну а большая претензия как раз к проведению "непроведенных" документов. Не надо перепроводить непроведенный документ. Он же ниначто не влияет. А если его перепровести, то данные совсем другими будут. Не так ли?

Вот мой код изначально.
Запрос.Текст =
      "ВЫБРАТЬ
      |   СписаниеСебестоимости.Регистратор,
      |   СписаниеСебестоимости.Период
      |ИЗ
      |   Последовательность.СписаниеСебестоимости КАК СписаниеСебестоимости
      |ГДЕ
      |   СписаниеСебестоимости.Период >= &ДатаНачалаОбработки
      |   И СписаниеСебестоимости.Период <= &ДатаОкончанияОбработки
      |   И СписаниеСебестоимости.Регистратор.Проведен
      |
      |УПОРЯДОЧИТЬ ПО
      |   СписаниеСебестоимости.Период,
      |   СписаниеСебестоимости.Регистратор";

В этом коде я беру все только проведенные документы. Как вы и говорите.

Magvay78 в своем комменте видать это не увидел и написал мне что у меня не правильно. Я и ответил что можно так и так.

Немного запутались все, в том числе и я не увидев "не" в слове "непроведенные".



Название: Re: Задача 1.07
Отправлено: GH0STexe от Октябрь 05, 2016, 12:26:31 pm
Цитировать
Странное дело получается. Я на курсах на которых был я как раз объясняли момент по поводу циклов. Ну а большая претензия как раз к проведению "непроведенных" документов. Не надо перепроводить непроведенный документ. Он же ниначто не влияет. А если его перепровести, то данные совсем другими будут. Не так ли?

Вот мой код изначально.
Запрос.Текст =
      "ВЫБРАТЬ
      |   СписаниеСебестоимости.Регистратор,
      |   СписаниеСебестоимости.Период
      |ИЗ
      |   Последовательность.СписаниеСебестоимости КАК СписаниеСебестоимости
      |ГДЕ
      |   СписаниеСебестоимости.Период >= &ДатаНачалаОбработки
      |   И СписаниеСебестоимости.Период <= &ДатаОкончанияОбработки
      |   И СписаниеСебестоимости.Регистратор.Проведен
      |
      |УПОРЯДОЧИТЬ ПО
      |   СписаниеСебестоимости.Период,
      |   СписаниеСебестоимости.Регистратор";

В этом коде я беру все только проведенные документы. Как вы и говорите.

Magvay78 в своем комменте видать это не увидел и написал мне что у меня не правильно. Я и ответил что можно так и так.

Немного запутались все, в том числе и я не увидев "не" в слове "непроведенные".

Понятно. Ну хорошо, что разобрались в итоге  :)
Название: Re: Задача 1.07
Отправлено: kuzyara от Октябрь 06, 2016, 04:22:55 am
Функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) Экспорт

// ...
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
РезультатЗапроса = Запрос.Выполнить();

Если НЕ РезультатЗапроса.Пустой() Тогда

НоменклатураДляБлокирования = РезультатЗапроса.Выгрузить();
// ...
      

минус балл или не?
Цитата: ATT83PL
Выгрузка результата запроса в промежуточную таблицу (например, в таблицу значений) без необходимости
Название: Re: Задача 1.07
Отправлено: kuzyara от Октябрь 06, 2016, 05:27:49 am
ComradeKite, и вот ещё:
Процедура ВыполнитьСписаниеИСместитьГП(ДатаНачалаОбработки, ДатаОкончанияОбработки) Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СписаниеСебестоимости.Регистратор,
| СписаниеСебестоимости.Период
|ИЗ
| Последовательность.СписаниеСебестоимости КАК СписаниеСебестоимости
|ГДЕ
| СписаниеСебестоимости.Период >= &ДатаНачалаОбработки
| И СписаниеСебестоимости.Период <= &ДатаОкончанияОбработки
| И СписаниеСебестоимости.Регистратор.Проведен
|
|УПОРЯДОЧИТЬ ПО
| СписаниеСебестоимости.Период,
| СписаниеСебестоимости.Регистратор";
, разве не следует использовать момент времени?
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 06, 2016, 07:46:01 pm
ComradeKite, и вот ещё:
Процедура ВыполнитьСписаниеИСместитьГП(ДатаНачалаОбработки, ДатаОкончанияОбработки) Экспорт

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

Граница последовательности, это структура, там поле "Дата" его я и передаю в процедуру. Ну а в это поле при смещении границы как раз и попадает дата от момента времени документа, который нарушает последовательность.
Название: Re: Задача 1.07
Отправлено: ComradeKite от Октябрь 06, 2016, 08:41:02 pm
Функция СписатьСебестоимостьТоваровДокумента(ДокументСсылка) Экспорт

// ...
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
РезультатЗапроса = Запрос.Выполнить();

Если НЕ РезультатЗапроса.Пустой() Тогда

НоменклатураДляБлокирования = РезультатЗапроса.Выгрузить();
// ...
      

минус балл или не?
Цитата: ATT83PL
Выгрузка результата запроса в промежуточную таблицу (например, в таблицу значений) без необходимости

Хороший вопрос,
слышал такую версию, что загрузка в ТЧ плохо, потому что жрет память, загружая весь запрос в ТЧ, а выборка заполняется не полностью а порциями.
Если есть возможность обойтись без ТЧ, то надо так и делать.

Я видел что через ТЧ делают в методичке, которую дают к курсам, поэтому сделал как там.

Но ваш вопрос навел меня на описание блокировки данных и я там нашел вот что:
ИсточникДанных (DataSource)
Использование:

Чтение и запись.
Описание:

Тип: РезультатЗапроса; Табличная часть; ТаблицаЗначений.
Источник данных, содержащий значения полей для установки условий на поля пространства блокировки.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Если делал бы еще раз то наверно сделал бы так

РезультатЗапроса = Запрос.Выполнить();
.
.
.
ЭлементБлокировки.ИсточникДанных = РезультатЗапроса;

То есть источнику данных сразу бы результат запроса закинул.

Получается что прослойка с ТЧ не нужна, а значит надо делать без нее.


Название: Re: Задача 1.07
Отправлено: Головлев Владислав от Ноябрь 30, 2016, 09:35:23 am
Здравствуйте! Не совсем понятно следующее:
Цитировать
При проведении документа «Расходная накладная» необходимо
производить только списание товара со склада.
затем
Цитировать
Списание себестоимости должно быть организовано по партиям

Как я понимаю должны быть два рн - по складам и по партиям, на как списывать товар? допустим на складе "транзитный" 20 шт, стоимость 1200, и партия №1 на основном складе, количество 300, себестоимость 18000 - кто нибудь может на данном примере объяснить как должно происходить списание номенклатуры?
Название: Re: Задача 1.07
Отправлено: Денис (UN Volunteer) от Ноябрь 30, 2016, 10:25:55 am
Ребята, привет. Если не там задаю вопрос, пожалуйста перенаправьте.  Получил тестовое задание от франча. Может кто знает, где можно найти примеры задач по: Суммовой учет в РН остатки номенклатуры
                                                       Автоматический расчет скидок
                                                       Добавлении кнопки "заполнить остатками на складе"
Уровень моей квалификации имеет тип "валенок"(только с курсов), буду признателен за любую инфу.
Название: Re: Задача 1.07
Отправлено: Головлев Владислав от Ноябрь 30, 2016, 11:04:28 am
Ребята, привет. Если не там задаю вопрос, пожалуйста перенаправьте.  Получил тестовое задание от франча. Может кто знает, где можно найти примеры задач по: Суммовой учет в РН остатки номенклатуры
                                                       Автоматический расчет скидок
                                                       Добавлении кнопки "заполнить остатками на складе"
Уровень моей квалификации имеет тип "валенок"(только с курсов), буду признателен за любую инфу.
Автоматические скидки - создаешь документ, в котором описываешь условия предоставления скидки (прим. подразделение, вид номенклатуры и т.д.), вставляешь саму скидку (создаешь справочник типы скидок, там прописываешь саму скидку и наименование), делаешь движения в регистр сведений, затем в процедуре при изменении определенных реквизитов проверяешь попадает ли под эти условия данная номенклатура, если да, то выставляешь скидку, которая прописана в скидочном документе.
Добавлении кнопки "заполнить остатками на складе" - тут вообще все просто, добавляешь кнопку с командой, которая просто берет все остатки по складам, группирует их и заполняет тч
Название: Re: Задача 1.07
Отправлено: ILMIR от Февраль 19, 2017, 04:08:29 pm
Добрый день, формчане.

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


последовательностьНЕнарушена = Последовательности.ПартионныйУчет.Проверить(ТекущаяДата());

Если последовательностьНЕнарушена Тогда
Возврат;
КонецЕсли;

НачатьТранзакцию();

Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
//Заблокируем что в пользовательском режими нельзя было провести документы приход/расход при востановление последовательности

ПараметрыСеанса.ИдетВостановлениеПоследовательности = Истина;
Последовательности.ПартионныйУчет.Восстановить(ТекущаяДата());

ПараметрыСеанса.ИдетВостановлениеПоследовательности = Ложь;
ЗафиксироватьТранзакцию();

Исключение
ПараметрыСеанса.ИдетВостановлениеПоследовательности = Ложь;
ОтменитьТранзакцию();

Сообщить(ОписаниеОшибки());
КонецПопытки;
Название: Re: Задача 1.07
Отправлено: НатальяЮГ от Май 26, 2017, 01:01:44 pm
Мой вариант  :)
Название: Re: Задача 1.07
Отправлено: jonik от Май 31, 2017, 04:53:01 pm
Всем привет. Задача сделана через последовательность, отчеты идентичны приведенным.
В процессе решения возникло пара вопросов, кому не сложно - просветите.

1) Как запустить/проверить регламентное задание в файловом варианте? Вручную обработка работает, а вот через регламентное даже в журнале пусто. Пробовал через
ВыполнитьОбработкуЗаданий() в модуле управляемого приложения - все равно ничего. Консоль заданий также показывает бездействие.

2) Почему-то в обработке приходится принудительно вызывать запись движений по регистрам (Движения.ОстаткиПоПартиям.Записать()) даже при выставленном флаге записи(Движения.ОстаткиПоПартиямЗаписывать = Истина), причем если вызвать Движения.Записать() приложение закрывается аварийно?
Название: Re: Задача 1.07
Отправлено: MariaVG от Июнь 03, 2017, 07:48:50 pm
1) Как запустить/проверить регламентное задание в файловом варианте? Вручную обработка работает, а вот через регламентное даже в журнале пусто.

У меня сначала тоже не запускалось. На этом форуме кто-то уже писал, что есть такой способ: снять у регл. задания флаг Предопределенное, обновить базу, а потом снова установить флаг Предопределенное и обновить. Я попробовала так сделать. Не знаю, это ли повлияло, но заработало.

Еще читала на форумах, что у регл. заданий в файловом варианте есть особенность - они запускаются каждую минуту, независимо от настроек расписания. 
Название: Re: Задача 1.07
Отправлено: Hisoka92 от Август 17, 2017, 08:14:02 am
Всех приветствую, покритикуйте решение плз, заранее благодарен
Название: Re: Задача 1.07
Отправлено: KlintuhovDE от Октябрь 07, 2017, 10:31:46 am
Всех приветствую, покритикуйте решение плз, заранее благодарен

Заметил два недостатка (ну о них, наверное, сами в курсе):
1.В расходную накладную не получается добавить услугу (к ней прменяется контроль остатков).
2.Отсутствует отчет по продажам

Возник вопрос:
Как в отчете "ОстаткиТоваров" добились того, что в группировке "склад" итоговое значение ресурса "количество" не считается/не выводится? Очень интересно. Я бы в СКД на вкладке ресурсы в колонке "Расчитывать по " установил галочку на "Номенклатура", но у вас это каким-то другим способом получилось. Как -не понял.
Название: Re: Задача 1.07
Отправлено: orcdunaev от Октябрь 08, 2017, 04:54:48 pm
Всем привет.
Озвучьте, пожалуйста, свое мнение.
В большинстве вариантов решения, которые я видел, есть три регистра накопления: Продажи, ОстаткиНоменклатурыПоСкладам, ОстаткиНоменклатурыПоПартиям (СебестоимостьНоменклатуры).
У кого-то себестоимость пишется в регистр Продажи при расчете себестоимости.
А кто-то себестоимость в регистр продажи не пишет вообще (нету в Продажах такого ресурса).
Соответственно, в первом случае в отчете "Продажи" себестоимость берется из регистра Продажи.
Во втором случае - себестоимость получают левым соединением регистра Продажи с регистром ОстаткиНоменклатурыПоПартиям.
И вот я думаю, что лучше?
В первом случае сокращается объем кода и время расчета себестоимости. При проведении расходной накладной делаем по новой методике движения по ОстаткамНоменклатурыПоСкладам и Продажам. При расчете себестоимости дорисовываем движения по ОстаткамНоменклатурыПоПартиям.
Но при этом мы в отчете "Продажи" делаем соединение с таблицей оборотов регистра с типом "остатки"... что, как мне кажется, не хорошо.
Какой вариант лучше на экзамене?
Название: Re: Задача 1.07
Отправлено: jonik от Ноябрь 28, 2017, 01:13:31 pm
Всем привет. Задача сделана через последовательность, отчеты идентичны приведенным.
В процессе решения возникло пара вопросов, кому не сложно - просветите.

1) Как запустить/проверить регламентное задание в файловом варианте? Вручную обработка работает, а вот через регламентное даже в журнале пусто. Пробовал через
ВыполнитьОбработкуЗаданий() в модуле управляемого приложения - все равно ничего. Консоль заданий также показывает бездействие.

2) Почему-то в обработке приходится принудительно вызывать запись движений по регистрам (Движения.ОстаткиПоПартиям.Записать()) даже при выставленном флаге записи(Движения.ОстаткиПоПартиямЗаписывать = Истина), причем если вызвать Движения.Записать() приложение закрывается аварийно?
Подкорректировал
Название: Re: Задача 1.07
Отправлено: eiffil от Август 29, 2018, 12:51:01 pm
Во всех решениях, где используется объект последовательности алгоритм примерно одинаковый: выбираются расходные накладные после границы последовательности и по ним рассчитываются регистры.

Но получается, что самая последняя расходная накладная будет всегда пересчитываться (например, при выполнении регзадания). Это же не очень правильно?
Название: Re: Задача 1.07
Отправлено: gsage от Апрель 26, 2019, 07:36:31 am
Кто как понимает текст условия задачи: "При проведении документа "Расходная накладная" необходимо производить списание товара со склада."  Получается, если на складе Транзитный не хватает товара то накладная не проводится, не смотря на то, что на Основном складе этот товар есть? Но, по задаче, себестоимость для расходной накладной Транзитного склада берется с "Приходной накладной №1" Основного склада?
Название: Re: Задача 1.07
Отправлено: nikola17 от Апрель 29, 2019, 07:24:38 am
Кто как понимает текст условия задачи: "При проведении документа "Расходная накладная" необходимо производить списание товара со склада."  Получается, если на складе Транзитный не хватает товара то накладная не проводится, не смотря на то, что на Основном складе этот товар есть? Но, по задаче, себестоимость для расходной накладной Транзитного склада берется с "Приходной накладной №1" Основного склада?
Добрый день! Это значит, что документ "Расходная накладная" проводится в том случае, если хватает товара на складе, указанном в шапке документа. При проведении Расходной накладной себестоимость не рассчитывается, т.е. происходит ТОЛЬКО списание со склада.
Рассчитывается себестоимость отдельной обработкой.
Списание по количеству - в разрезе конкретного склада, расчет себестоимости - по партиям (вне зависимости от склада).
Название: Re: Задача 1.07
Отправлено: gsage от Май 02, 2019, 05:07:09 pm
Кто как понимает текст условия задачи: "При проведении документа "Расходная накладная" необходимо производить списание товара со склада."  Получается, если на складе Транзитный не хватает товара то накладная не проводится, не смотря на то, что на Основном складе этот товар есть? Но, по задаче, себестоимость для расходной накладной Транзитного склада берется с "Приходной накладной №1" Основного склада?
Добрый день! Это значит, что документ "Расходная накладная" проводится в том случае, если хватает товара на складе, указанном в шапке документа. При проведении Расходной накладной себестоимость не рассчитывается, т.е. происходит ТОЛЬКО списание со склада.
Рассчитывается себестоимость отдельной обработкой.
Списание по количеству - в разрезе конкретного склада, расчет себестоимости - по партиям (вне зависимости от склада).

Большое спасибо.
Название: Re: Задача 1.07
Отправлено: Евгений_нвкз от Сентябрь 10, 2020, 04:19:35 am
Всем привет. Мое решение)