Автор Тема: Задача 1.08  (Прочитано 42773 раз)

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

Fat_Mike

  • Пользователь
  • **
  • Сообщений: 12
Re: Задача 1.08
« Ответ #90 : Март 18, 2016, 11:14:36 am »
Прокомментируйте ребята пожалуйста, кому не сложно  :) не уверен что с транзакционной блокировкой все верно ыы :-[

Головлев Владислав

  • Пользователь
  • **
  • Сообщений: 29
Re: Задача 1.08
« Ответ #91 : Март 24, 2016, 07:46:51 am »
Если выполнять задания с учетом того, что такая задача должна отрабатываться на 100% во всех случаях в 1С не решаемая, так как нельзя передвигать моменты внутри секунды или я о способе двигать один документ относительно другого не знаю. Если я ошибаюсь то плиз скажите как решать задачу.

Причины:
1. Если мы используем ДатаПеремещения = ДатаРеализации -1. То данный способ у нас не учитывает возможность того, что в секунду ДатаРеализации в отдел закупок может поступить необходимый товар документом расположенным левее на оси времени, чем документ продажи. И естественно что док. перемещения не проведется так как он должен быть между док. поступления и реализации.
2. Если даты равны. то продажа не проведется так как она будет стоять левее документа перемещения на оси времени.
3. Если ДатаПеремещения = ДатаРеализации, а ДатаРеализации = ДатаРеализации + 1 то не учитываются документы проведенные в туже секунду, что и ДатаПеремещения и "ДатаРеализации + 1".

Но так как такая задача существует - то плиз кто сдал этот экзамен скажите какое решение приемлемо для сдачи.

Я больше склоняюсь к варианту 2. если документ перемещения будет проведен в ту же сек то и проверку остатков делать не надо в документе продажи а тупо его провести и отчет будет нормально выглядеть так как там период по секундам. Недостаток решения - если получать остатки на момент времени документа продажи то они будут "-" и невозможность нормально использовать последовательность.

Цитировать
Решаю задачу. У меня один регистр. ОстаткиНоменклатуры. Изм. - Номенклатура, Отдел. Рес. Количество, Стоимость. Я не совсем поняла что мы пишем в стоимость при продаже. Себестоимость по отделу или стоимость по которой продали? Я везде писала среднюю себестоимость. И теперь из-за этих наценок у меня регистр не выходит в ноль.. Подскажите, в чем моя ошибка?
Базу на всякий случай прикрепляю.
Себестоимость по отделу(торговой точке). В разрезе чего он не выходит в ноль, напишите подробнее.

Схема такая должна быть:
Приходный ордер: Приход ОтделЗакупок Утюг 10 шт 100 руб
Перемещение: Расход ОтделЗакупок Утюг 7 шт 70 руб; Приход торговая точка Утюг 7 шт 77 (70 + 7) (если наценка 10 проц)руб
Продажа: Расход торговая точка Утюг 7 шт 77 руб

ps покритикуйте, плиз, моё решение

Код не смотрел, но при проведении расходной накладной, с указанием количества большего, чем есть в точке продаж выскакивает сообщение: "Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.РасходнаяНакладная.МодульОбъекта(165)}: Ошибка при вызове метода контекста (Записать)
      ДокументПеремещения.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Не удалось провести: "Расходная накладная"!"


CSiER

  • Пользователь
  • **
  • Сообщений: 23
  • ФИО: Андриянов А.В.
Re: Задача 1.08
« Ответ #92 : Март 24, 2016, 09:27:37 am »
Здравствуйте! Скажите, где создавать документ перемещение? Как я понимаю можно сделать следующим образом: сначала мы делаем движение, затем проверяем остатки,  если не хватает то создаем и проводим документ "перемещение", т.е. как я понимаю надо в цикле обхода выборки создавать новый запрос с контролем остатка в отделе "Закупка" и создавать и проводить документ? но ведь запрос в цикле не есть хорошо. Или каким то другим образом это можно реализовать?
Сам готовлюсь недавно, поэтому как правильно сделать сказать не могу, можно сделать так: получить остатки по точке продаже и отделу закупа (в сумме) и уже по ним принять решение проводить документ или нет; затем сформировать (по этому же запросу) список номенклатуры, по которой надо сделать перемещение и провести его, затем уже классическое формирование движений по текущему документу (через новый запрос).

Головлев Владислав

  • Пользователь
  • **
  • Сообщений: 29
Re: Задача 1.08
« Ответ #93 : Март 24, 2016, 10:54:56 am »
Здравствуйте! Скажите, где создавать документ перемещение? Как я понимаю можно сделать следующим образом: сначала мы делаем движение, затем проверяем остатки,  если не хватает то создаем и проводим документ "перемещение", т.е. как я понимаю надо в цикле обхода выборки создавать новый запрос с контролем остатка в отделе "Закупка" и создавать и проводить документ? но ведь запрос в цикле не есть хорошо. Или каким то другим образом это можно реализовать?
Сам готовлюсь недавно, поэтому как правильно сделать сказать не могу, можно сделать так: получить остатки по точке продаже и отделу закупа (в сумме) и уже по ним принять решение проводить документ или нет; затем сформировать (по этому же запросу) список номенклатуры, по которой надо сделать перемещение и провести его, затем уже классическое формирование движений по текущему документу (через новый запрос).
Я по новому методу списания делаю, т.е. сначала делаю движения, а затем новым запросом проверяю остатки, прохожу по каждой строке, если в какой то строке есть "нехватка"(это выбор из условия в запросе, когда количествоостаток меньше количества введеного в документе), то булевой переменной  "нехватка" присваиваю "Истина", затем условие: если нехватка тогда... и вызываю функцию создания и записи нового документа.

Головлев Владислав

  • Пользователь
  • **
  • Сообщений: 29
Re: Задача 1.08
« Ответ #94 : Март 24, 2016, 04:06:32 pm »
Доделал) Посмотрите моё решение пожалуйста, скажите на что нужно было накладывать блокировки? Я совсем не давно начал изучение 1с с блокировками еще не разобрался)

clancy08

  • Пользователь
  • **
  • Сообщений: 40
Re: Задача 1.08
« Ответ #95 : Март 28, 2016, 08:48:35 pm »
Большое спасибо!!!

Не могли бы объяснить.
Если режим проведения не оперативный, почему не ставится блокировка?
Почему не ставится блокировка на отдел "Закупка" ведь возможно, что одновременно, кто то может списать товар до того как вы проведете документ?

vilt

  • Новичок
  • *
  • Сообщений: 2
Re: Задача 1.08
« Ответ #96 : Июнь 17, 2016, 01:30:14 pm »
Выкладываю свое решение задачи. По-моему учел все. Секунду у новой расходной отнимать не пришлось. Готов к критике.

vilt

  • Новичок
  • *
  • Сообщений: 2
Re: Задача 1.08
« Ответ #97 : Июнь 18, 2016, 08:48:08 am »
Нашел ошибку во втором запросе. Добавил "левое" соединение таблицы документа с новой расходной, иначе получались лишние строки если превышение количества не по каждой номенклатуре.

alfalume

  • Проверенный
  • ***
  • Сообщений: 103
Re: Задача 1.08
« Ответ #98 : Сентябрь 11, 2016, 11:44:34 am »
мое решение

erdem.badluev

  • Проверенный
  • ***
  • Сообщений: 139
Re: Задача 1.08
« Ответ #99 : Сентябрь 12, 2016, 10:01:47 am »
мое решение

Всё на мой взгляд новичка хорошо, кроме, разве что в модуле объекта Расходной накладной при вызове процедуры ВыполнитьПеремещение нужно было передавать менеджер временных таблиц, в вашем случае бедный Список формируется аж 3 раза: сначала из документа группируется, затем просто выбирается, затем (в процедуре ВыполнитьПеремещение) формируется из таблицы значений.
« Последнее редактирование: Сентябрь 12, 2016, 10:40:07 am от erdem.badluev »

erdem.badluev

  • Проверенный
  • ***
  • Сообщений: 139
Re: Задача 1.08
« Ответ #100 : Сентябрь 12, 2016, 10:42:15 am »
Жду критики.

Psychoproger

  • Новичок
  • *
  • Сообщений: 1
Re: Задача 1.08
« Ответ #101 : Октябрь 28, 2016, 10:10:49 am »
Прошу покритиковать решение (я новичок, не знакомый ни с одной типовой конфиурацией, ковыряю платформу по книжкам), заранее прошу прощения, что без блокировок и отчета.

« Последнее редактирование: Октябрь 29, 2016, 09:17:34 am от Psychoproger »

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.08
« Ответ #102 : Июнь 06, 2017, 05:27:28 pm »
Всем привет. Сделано полностью вместе с отчетом.
Вопрос по отчету:
Уже не в первой задаче в поле "Начальный остаток"(например) нужно отобразить значения количества и суммы, причем заголовка этих ресурсов быть не должно(короче отчет как в книжке). Как это сделать?

const86

  • Новичок
  • *
  • Сообщений: 7
Re: Задача 1.08
« Ответ #103 : Сентябрь 03, 2017, 10:43:25 pm »
Всем привет. Сделано полностью вместе с отчетом.
Вопрос по отчету:
Уже не в первой задаче в поле "Начальный остаток"(например) нужно отобразить значения количества и суммы, причем заголовка этих ресурсов быть не должно(короче отчет как в книжке). Как это сделать?

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

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.08
« Ответ #104 : Сентябрь 04, 2017, 12:38:40 pm »
Всем привет. Сделано полностью вместе с отчетом.
Вопрос по отчету:
Уже не в первой задаче в поле "Начальный остаток"(например) нужно отобразить значения количества и суммы, причем заголовка этих ресурсов быть не должно(короче отчет как в книжке). Как это сделать?

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

Можешь скинуть свой вариант, как то плохо въезжаю ???