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

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

mulradik

  • Новичок
  • *
  • Сообщений: 6
  • Светить всегда, светить везде...
  • ФИО: Радик
Задача 1.08
« Ответ #75 : Август 09, 2014, 06:01:50 pm »
Прошу протестировать моё решение на предмет ошибок или неоптимальности кода.
 https://yadi.sk/d/jAFnlmNSZLEAM
 Заранее благодарю.

Добавлено (09.08.2014, 18:01)
---------------------------------------------
Если кто подскажет, как наложить блокировку сразу на два подразделения при перемещении - буду очень признателен!


GPetr

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Petr
Задача 1.08
« Ответ #76 : Октябрь 07, 2014, 12:45:09 pm »
Решил своим способом. С помощью пакета запроса получил список нехватки товара и список для списания.
 Блокировки на перемещение и продажу по разным отделам.
 http://my-files.ru/u306ij
 Буду презнателен за комментарии. Заранее благодарю.


Svetik_1704

  • Пользователь
  • **
  • Сообщений: 21
  • ФИО: Светлана
Re: Задача 1.08
« Ответ #77 : Ноябрь 26, 2014, 08:56:43 am »
Подскажите какую дату указать для программно создаваемого документа перемещения (когда на точке не хватат товара и требуется его переместить из закупок). Вариант типа ДокПеремещение.Дата = Дата-1 мне не нравиться, т.к. если есть еще документы продажи в эту же Дату, то будет нарушена последовательность документов и соответственно может измениться себестоимость продажи. Каким образом организовать запись документов по перемещению и продаже, чтобы не была нарушена последовательность документов на оси времени, т.е. чтобы сначала шло перемещение, а потом продажа, и между ними никогда не существовали другие документы????

olsput

  • Пользователь
  • **
  • Сообщений: 15
  • ФИО: olsput
Re: Задача 1.08
« Ответ #78 : Ноябрь 26, 2014, 04:23:10 pm »
вариант решения делал сам, правда предварительно просмотрел  предложенные ранее варианты.
использовал при проведении РасходнойНакладной признак "Перемещение".
то есть из РасходнойНакладной для продажи, в случае недостатка товара на Точке создается
РасходнаяНакладная с признаком Перемещение=Истина и Дата=Дата-1, этот новый документ сохраняется и проводится.
после возвращаемся к Накладной на продажу и проводим и ее.

olsput

  • Пользователь
  • **
  • Сообщений: 15
  • ФИО: olsput
Re: Задача 1.08
« Ответ #79 : Ноябрь 26, 2014, 04:33:41 pm »
Попутно хочу ответить на вопрос по поводу "дата=дата-1"
мне такой вариант кажется допустимым в рамках задачи 1.08
Все же она довольно искуственно придуманная . И вариант с дата-1сек - практически спорных ситуаций не создаст.
-------
далее часто возникающий вопрос по поводу копеек - мне кажется формула
Движение.Сумма = Выборка.Количество/Выборка.КоличествоНаТочке*Выборка.СебестоимостьНаТочке;
эту проблему легко решает. Здесь важен именно порядок указанных полей.
вначале идет деление. И если оно дает 1, то списывается ВЕСЬ остаток


 

olsput

  • Пользователь
  • **
  • Сообщений: 15
  • ФИО: olsput
Re: Задача 1.08
« Ответ #80 : Ноябрь 26, 2014, 04:36:37 pm »
еще  в Теме был вопрос по поводу "как наложить блокировку сразу на два подразделения"
попробовал в своем решении и его решить. использовал такой "корявый" вариант
   Блокировка = Новый БлокировкаДанных;
   ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
   ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
   
   ТабСписЗначений = СписокНоменклатуры.Выгрузить( ,"Номенклатура");
   
   ДобЗначТовара = ТабСписЗначений[0].Номенклатура;
   ТабСписЗначений.Колонки.Добавить("Подразделение",,"Подразделение");
   ТабСписЗначений.ЗаполнитьЗначения(Подразделение,"Подразделение");  /// реквизит в РасходнаяНакладная
   НовСтр=ТабСписЗначений.Добавить();
   НовСтр.Номенклатура=ДобЗначТовара;
   НовСтр.Подразделение=ОтделЗакупок; //// это константа  ОтделЗакупок = Константы.ОтделЗакупок.Получить();
   
   ЭлементБлокировки.ИсточникДанных = ТабСписЗначений;
   //ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;

   ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Подразделение", "Подразделение");
   ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
   
   Блокировка.Заблокировать();

Svetik_1704

  • Пользователь
  • **
  • Сообщений: 21
  • ФИО: Светлана
Re: Задача 1.08
« Ответ #81 : Ноябрь 27, 2014, 02:22:35 pm »
Не вижу смысла сразу ставить блокировку на 2 отдела. Все блокируется по мере необходимости. Единственно, что у меня не получилось, дак это убрать сообщение "В данной транзакции уже произошла ошибка" в случае, когда есть превышение остатков при программном создании Перемещения. На сколько это критично на экзамене?



Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 1.08
« Ответ #82 : Декабрь 08, 2014, 08:39:41 pm »
Посмотрите пжл на мое решение задачи!

Lty3

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Денис
Re: Задача 1.08
« Ответ #83 : Март 21, 2015, 12:53:32 am »
IMHO

rusmosav

  • Проверенный
  • ***
  • Сообщений: 137
Re: Задача 1.08
« Ответ #84 : Март 23, 2015, 09:58:32 am »
Прощу оценить.

gamletv1

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Валерий
Re: Задача 1.08
« Ответ #85 : Июнь 15, 2015, 11:52:07 am »
Господа, кому не сложно, проверьте мое решение пожалуйста. Буду рад конструктивной критике. Пытался сделать через "ПолучитьОперативнуюОтметкуВремени", но по итого все же пришел к варианту дата-1 (при не оперативном проведении документа много заморочек). Думаю, что на экзаменационной задаче это будет не критично.

Sergey-Vl

  • Новичок
  • *
  • Сообщений: 7
Re: Задача 1.08
« Ответ #86 : Июнь 22, 2015, 10:00:35 am »
Просьба посмотреть решение задачи.

AlenkaInt

  • Пользователь
  • **
  • Сообщений: 39
  • ФИО: Елена
Re: Задача 1.08
« Ответ #87 : Октябрь 24, 2015, 12:11:47 pm »
Решаю задачу. У меня один регистр. ОстаткиНоменклатуры. Изм. - Номенклатура, Отдел. Рес. Количество, Стоимость. Я не совсем поняла что мы пишем в стоимость при продаже. Себестоимость по отделу или стоимость по которой продали? Я везде писала среднюю себестоимость. И теперь из-за этих наценок у меня регистр не выходит в ноль.. Подскажите, в чем моя ошибка?
Базу на всякий случай прикрепляю.

titan6662000

  • Новичок
  • *
  • Сообщений: 5
Re: Задача 1.08
« Ответ #88 : Октябрь 28, 2015, 11:09:21 am »
Если выполнять задания с учетом того, что такая задача должна отрабатываться на 100% во всех случаях в 1С не решаемая, так как нельзя передвигать моменты внутри секунды или я о способе двигать один документ относительно другого не знаю. Если я ошибаюсь то плиз скажите как решать задачу.

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

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

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

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

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

ps покритикуйте, плиз, моё решение
« Последнее редактирование: Октябрь 28, 2015, 12:51:22 pm от titan6662000 »

icon_nvr

  • Новичок
  • *
  • Сообщений: 2
  • АйКон, Новороссийск
  • ФИО: Мария Орлова
Re: Задача 1.08
« Ответ #89 : Февраль 02, 2016, 11:36:57 am »
Вот моё решение. Ни на чьём решении не основывалась, поэтому, может, чем-то от всех отличается)
Прокомментируйте/покритикуйте, пожалуйста.

З.Ы. Вопрос: возможно без макета сделать отчет точь-в-точь как в условии?? Конкретно касательно заголовков - например, чтобы было написано просто Приход, а не Приход, а под ним - Количество, Стоимость? И как сделать, чтобы поле, по которому группировка - в данном случае Склад - выводилась в отдельной колонке (как в условии)?