Автор Тема: 1.6  (Прочитано 132303 раз)

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

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: 1.6
« Ответ #375 : Май 24, 2017, 11:00:15 am »
Можно все-таки разъяснить вопрос про очистку движений при новом и старом методе списания? Т.к. в ветке http://forum.chistov.pro/index.php?topic=3879.0 говорится
Цитировать
НЕ ПИШИ ТАК НА ЭКЗАМЕНЕ!
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
   Движения.ОстаткиНоменклатуры.Записать();
пиши так:
     Движения.ОстаткиНоменклатуры.Записать();
Я уточнял!!!!Не делай мои ошибки )
а в решении на сайте http://1c.chistov.pro/2014/11/106-1.html
Цитировать
//Установим блокировки
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиПартийТоваров");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = РезультатЗапроса;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Товар", "Товар");
    Блокировка.Заблокировать();

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

    Движения.ОстаткиПартийТоваров.Записывать = Истина;

П.С. желательно услышать мнения автора последней статьи)
« Последнее редактирование: Май 24, 2017, 11:05:56 am от jonik »

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: 1.6
« Ответ #376 : Май 25, 2017, 04:59:53 pm »
Сделал задачу по Чистову, отчеты идентичны приведенному заданию.


MariaVG

  • Проверенный
  • ***
  • Сообщений: 113
Re: 1.6
« Ответ #377 : Июнь 02, 2017, 03:38:11 pm »
Думаю, что можно реализовать эту задачу, сделав отдельную обработку или команду для расчета стоимости списания за заданный пользователем период. При этом проверку корректности указания периода для расчета возложить на самого пользователя. Один из инструментов проверки корректности расчетов - отсутствие отрицательных остатков в отчете. А так, предполагается, что только сам пользователь может знать, по какой период уже введены все поступления.

Логика здесь следующая:
1) Если допускается списание без контроля остатков, значит, расходная накладная сама рассчитывать себестоимость не может.

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

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

Про запрет ввода документов прихода задних числом, думаю, что это все-таки некорректно сформулированное условие, просто скопированное из других задач.

Скорее всего, достаточно будет одного складского регистра. Процедура расчета себестоимости будет выбирать все расходные накладные за заданный период и переформировывать их движения в данном регистре в порядке возрастания момента времени расходных.  Насчет последовательностей, вроде бы П.Белоусов говорил, что сейчас их использование на экзамене не требуется.
« Последнее редактирование: Июнь 02, 2017, 04:14:48 pm от MariaVG »

mxs89

  • Пользователь
  • **
  • Сообщений: 16
  • Нужно делать так, как нужно
  • ФИО: Макаров Максим
Re: 1.6 мое решение
« Ответ #378 : Август 10, 2017, 10:14:26 am »
что скажете?  :o

youalex

  • Новичок
  • *
  • Сообщений: 6
Re: 1.6
« Ответ #379 : Август 13, 2017, 08:13:20 am »
Можно все-таки разъяснить вопрос про очистку движений при новом и старом методе списания?

Условие "Если Режим = РежимПроведенияДокумента.Оперативный" - использовалось потому что, при Оперативном проведение - дата документа всегда увеличивается (до текущей). И, т.о. при получении остатков на МоментВремени() - гарантированно учитываются и движения текущего документа,  если, конечно, они есть.
Смысл этого условия  не в режиме проведения, а в том, что дата может быть сдвинута вперед.

Проблема в том, что при неоперативном проведении - дата может быть также быть сдвинута вперед, руками, -  и мы получим аналогичную ситуацию.  На дружественном ресурсе - я видел решение где анализируется, увеличилась ли Дата документа(в ПередЗаписью + ПриЗаписи), и, если увеличилась - то движения очищаются. Думаю, на сертификации нет смысла заморачиваться подобным образом, можно просто очищать безусловно.

const86

  • Новичок
  • *
  • Сообщений: 7
Re: 1.6
« Ответ #380 : Сентябрь 02, 2017, 08:14:22 pm »
Сторнировать расходную при проведении поступления не нужно. Кто против, готов поспорить. :)
Смотрите, по условию задачи, должна быть возможность продажи ещё неоприходованного товара, по сроку годности. Т.е. если физически он есть, но в системе не заведен. Всё равно должен быть продан товар с наименьшим сроком годности.
В случае если оказался оприходован товар с меньшим сроком годности, чем в движениях, при сторнировании нарушится логика задачи (первым списывается самый испорченный).  Иначе мы можем получить ситуацию, что физически на складе испорченного товара нет, а в программе он есть. И только перепроведение документов списания, будет гарантировать нам то, что испорченные товары и в программе и на складе не останутся.

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: 1.6
« Ответ #381 : Ноябрь 24, 2017, 03:30:14 pm »
Сделал задачу по Чистову, отчеты идентичны приведенному заданию.
Подкорректировал
« Последнее редактирование: Ноябрь 27, 2017, 10:51:07 am от jonik »

void127

  • Новичок
  • *
  • Сообщений: 6
Re: 1.6
« Ответ #382 : Октябрь 28, 2018, 02:00:44 pm »
Начал готовиться к Спецу по платформе, наткнулся на пример решения задания 1.06
http://1c.chistov.pro/2014/11/106-1.html
Начал решать сам - заметил, что в решении Павла опущен подвох условия задания, что отчет по продажам нужен по измерениям "Номенклатура + Срок годности". Вилы в том, что у нас везде (документ реализации, остатки партий, обороты продаж) разные комбинации измерений и в отчет по продажам нормально (без возни с распределениями) не клеится себестоимость в заявленном разрезе, чтобы и продажи отразить и с ведомостью по партиям было сопоставимо. К Павлу, естественно, нет претензий (его статья ценна за иллюстрацию блокировок и общий мэйнстрим), но проверяющие могут и заминусовать за "упрощение".

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

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

Тема старенькая, да и в актуальных билетах не нашел этой задачки, но подвох в условиях ограниченного времени годный - прицеплю на всякий случай свой вариант решения.
P.S. Прикрутил ДатаДокСдвинутаВперед для анализа нужно ли записывать пустой набор по партиям при проведении расходной, чтобы не выхватить свои же движения в запросе. Что-то вошкотно выходит, так и до подписок с общими механизмами можно дойти - на экзамене это было бы, однако, перебор, ибо долго возиться.
« Последнее редактирование: Октябрь 29, 2018, 10:34:14 am от void127 »

Евгений_нвкз

  • Пользователь
  • **
  • Сообщений: 18
Re: 1.6
« Ответ #383 : Сентябрь 09, 2020, 09:28:08 am »
Всем привет. Мое решение на обозрение)

Black_Corsair

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: Е. С. И.
Re: 1.6
« Ответ #384 : Ноябрь 17, 2020, 03:39:46 pm »
Всем привет, я тут решил проконсультироваться с коллегой, и он мне указал на такой момент что в задании ни где не написано что необходимо сделать обработку или какой то код для того чтобы документы перепроводились. Зато написано что можно открыть существующий документ и перепровести его, т.е. пользователь сам это сделает. Тогда получается что зачем себе усложнять жизнь, если на экзамене и так не сильно много времени

koladen

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Денис
Re: 1.6
« Ответ #385 : Август 19, 2021, 12:23:46 pm »
Мне кажется, указывать отдельную дату поступления в приходной - неверно. У меня такой вариант решения. При выключенном контроле остатков Расходная накладная может делать движения с пустой партией и сроком годности. Приходная накладная при проведении анализирует, какая расходная сделала первое движение по комбинации:
 Приходная.Номенклатура = ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура
И ОстаткиНоменклатурыОстаткиИОбороты.СрокГодности >= Приходная.СрокГодности
Берем дату этой расходной, и в приходной Период указываем равным этой дате. При проведении последовательность сдвигается на момент перед нужной расходной накладной. После восстановления последовательности и перепроведения расходных документов с этой даты, получаем корректный результат.

mego

  • Новичок
  • *
  • Сообщений: 2
Re: 1.6
« Ответ #386 : Ноябрь 02, 2021, 01:49:32 pm »
Мне кажется, указывать отдельную дату поступления в приходной - неверно. У меня такой вариант решения. При выключенном контроле остатков Расходная накладная может делать движения с пустой партией и сроком годности. Приходная накладная при проведении анализирует, какая расходная сделала первое движение по комбинации:
 Приходная.Номенклатура = ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура
И ОстаткиНоменклатурыОстаткиИОбороты.СрокГодности >= Приходная.СрокГодности
Берем дату этой расходной, и в приходной Период указываем равным этой дате. При проведении последовательность сдвигается на момент перед нужной расходной накладной. После восстановления последовательности и перепроведения расходных документов с этой даты, получаем корректный результат.

Попробовал сначала провести расходную, затем приходную. Что то ничего не произошло))

mego

  • Новичок
  • *
  • Сообщений: 2
Re: 1.6
« Ответ #387 : Ноябрь 02, 2021, 01:55:14 pm »
У меня вопрос к спецам, будет ли правильным при поступлении товара перепроводить документы РасходнойНакладной датой, большей от ПриходнойНакладной ?
А находить эти документы я буду по отрицательным остаткам, записывая их в отдельный регистр.
При перепроведении РН, лишние записи будут очищаться сами.
В условии задачи разрешено перепроводить.