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

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

LEX_CH

  • Новичок
  • *
  • Сообщений: 4
Re: 1.5
« Ответ #375 : Июль 03, 2017, 09:03:38 am »
Решил задачу 1.5. Использовал 3 регистра. Насколько это правильно? Посмотрите решение. Жду критики

bsn-chita

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Сергей Николаевич Б
Re: 1.5
« Ответ #376 : Июль 04, 2017, 02:47:15 pm »
LEX_CH
Ни на что не претендую сам только учусь и вот что я думаю про ваше решение.
1) Для того чтобы очистить движения нужно перед записью писать
Движения.НазваниеРегистра.Очистить();
2) Можно не создавать каждый раз новый объект Запрос, а лишь менять его текст и выполнять(косметика)
3) Не понятно зачем в одном из запросов временную таблицу помещаете во временную таблицу
4) Я бы использовал УБЫВ в тексте запроса потому что если начать редактировать текст запроса в конструкторе то 1С упростит его убрав ВОЗР
5) Отказ = Истина из цикла бы вынес или выше или ниже просто чтобы оператор выполнился один раз а не несколько (косметика)
6) Заменил бы
Если ДополнительныеСвойства.Проведен тогда
Движения.СебестоимостьНоменклатуры.Очистить();
Движения.СебестоимостьНоменклатуры.БлокироватьДляИзменения=Истина;
Движения.СебестоимостьНоменклатуры.Записать();
КонецЕсли;
на
Движения.СебестоимостьНоменклатуры.Очистить();
Если ДополнительныеСвойства.Проведен тогда
Движения.СебестоимостьНоменклатуры.БлокироватьДляИзменения=Истина;
Движения.СебестоимостьНоменклатуры.Записать();
КонецЕсли;
Очищать на всякий случай все равно надо и чтобы 2 раза не писать вынес бы из условия
7) В самом начале бы писал так
Движения.ОстаткиНоменклатуры.Записывать=Истина;
Движения.ОстаткиНоменклатуры.Очистить();
...
запись движении по регистру
...
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения=Истина;
Движения.Записать();
То есть установил флаг записи на регистр остатков, на всякий случай установил флаг очистки движении, и если я не ошибаюсь заблокировал товары по "старым"(те что были в движениях до очистки) и "новым"(те что сейчас будут записаны в регистр) товарам.
И да выгрузку если можно версии по старее.


const86

  • Новичок
  • *
  • Сообщений: 7
Re: 1.5
« Ответ #377 : Сентябрь 02, 2017, 02:48:18 pm »
Все рассуждают, да вот ни кто не пишет как в действительно правильно (из результата сдачи экзамена). Хотя чисто теоретически правильно именно через пустую партию.
Т.к. рассмотрим такую ситуацию:
* Ведется учет по ФИФО или ЛИФО.
* Сегодня с утра решили перевести на ПоСреднему
* Товары продолжают списываться по партиям. Какие-то партии успевают списаться по количеству в 0, а сумма остается (положительная или отрицательная)
* На следующий день решают, что надо бы вернуться назад на допустим ФИФО.
* Товары продолжают списываться по партиям.
А теперь вопрос, что станется с оставшейся суммой? Они продолжат висеть, потому что количество на них 0. И логикой они должны пропускаться
Вести на разных регистрах количество и сумму не вариант, т.к. при списании количества будет браться одна партия, а при списании суммы - другая. В следствии чего будет не сходиться себестоимость.

Второй момент из прочитанного. Тут поднималась проблема копеек, при расчете себестоимости. Ответственно, товарищи, вам заявлю её нет. Нет абсолютно ни каких оснований делать проверку на равенство количества на продажу и количества остатков. Ибо формула: Количество*СуммаОстаток/КоличествоОстаток - стопроцентно гарантирует не возможность её возникновения. Т.к. это математика. А её законы как известно непоколебимы. Объясню. Приоритет операций умножения и деления одинаков. А следователь машина сначала умножит количество и сумму, а уже потом разделит на количество остаток. В случае их равенства (количество и количествоостаток), по правилам математики, они взаимоисключаются и в итоге мы получаем чистый суммаостаток.
Но если мы изменим порядок исполнения этой операции (СуммаОстаток / КоличествоОстаток * Количество), возникновение копеек возможен. Т.к. в данном случае мы сначала уменьшим результат а потом увеличим. В следствии чего может возникнуть ситуация погрешности округления.

А меня вот интересует вопрос, не оперативного проведения документов. Если мы перепроводим документ прошлой датой, нужно ли восстанавливать последовательность. И если да, как, собственно, это сделать.

Bereza

  • Новичок
  • *
  • Сообщений: 1
Re: 1.5
« Ответ #378 : Октябрь 03, 2017, 01:45:04 pm »
Ребята, только учусь. Решение не совсем индивидуальное.
Взял в некоторых местах  с разных решений рабочий код и добавил свои правки.
Может кому пригодиться.


jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: 1.5
« Ответ #379 : Ноябрь 23, 2017, 02:33:08 pm »
Всем привет. Долго "въезжал" в переход FIFO\LIFO - ПоСредней и обратно. Сделал через пустую партию
Подкорректировал
« Последнее редактирование: Ноябрь 27, 2017, 10:33:50 am от jonik »

Lenor_leroi

  • Новичок
  • *
  • Сообщений: 7
Re: 1.5
« Ответ #380 : Июнь 24, 2018, 11:30:36 pm »
Что-то я не понимаю, зачем пустая партия. Нельзя просто оставить также списывать кол по партиям при переходе на среднюю, а себестоимость считать по средней по итогам по номенклатуре из запроса без учета партии? Чем это плохо?

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

  • Пользователь
  • **
  • Сообщений: 18
Re: 1.5
« Ответ #381 : Сентябрь 08, 2020, 06:42:22 am »
Привет всем, мое решение.

fobby

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Евгений
Re: 1.5
« Ответ #382 : Сентябрь 27, 2020, 11:48:38 am »
Здравствуйте. Смотрю давно никто не выкладывал и не делится. Меньше стало желающих?
По задаче как я понял два основных вопроса
1)Как обыграть условие "старые документы могут неоперативно проводиться"
2) Переход между способами списания

По п.1 мне понравилось решение,чтобы прописать условие, хотя технически обосновать для себя не смог т.е. и без этого работает корректно при перероведении старых документов. Может кто разъяснит?
 
Если Режим = РежимПроведенияДокумента.Оперативный ТОгда
Движения.ОстаткиНоменклатуры.Записать();
КонецЕсли;


По п.2. Здесь условие в двух местах.
   а) В документе ИзменениеУчетнойПолитики в обработке проведения прописал  условие - если метод списания Средняя, то списываем все партии какие есть до текущего момента, и приходуем соответствующие товары этих партий, но с указанием в качестве партии документа ИзменениеУчетнойПолитики.
    б) При проведении РасходнаяНакладная проверяем - если ПоСредней, то себестоимость списания считаем на уровне итогово по номенклатуре в целом, а не по партии.

Выкладываю свое решение. Посмотрите кому интересно. Ну и если есть возможность конструктивно покритиковать :)

OurProgramist

  • Пользователь
  • **
  • Сообщений: 33
  • ФИО: Иван
Re: 1.5
« Ответ #383 : Ноябрь 08, 2020, 03:50:02 am »
Привет всем, мое решение.
  Спасибо за решение ,  по моему "ПриходнуюНакладную" не надо так усложнять , например излишне проверка  Учетной политики, потому что знать какая политика нужно только при списании, а на момент принятия товара по моему без разницы какая политика списания, ведь товар все равно надо принять в любом случае хоть списание потом будет по СРЕЕДНЕЙ хоть по ФИФОЛИФО, если я не правильно размышляю то поправьте меня

Black_Corsair

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: Е. С. И.
Re: 1.5
« Ответ #384 : Ноябрь 13, 2020, 11:50:25 am »
В общем подумал и решил выложить свой вариант, все говорят о том что если на среднюю резко поменяется, так вот я решил что по среднему тоже списывается из определенных партий и поэтому указал их в качестве списания. чтобы если в будущем перешло на ФИФО, ЛИФО, то не получилось что партий больше чем необходимо

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

  • Пользователь
  • **
  • Сообщений: 18
Re: 1.5
« Ответ #385 : Январь 29, 2021, 01:22:19 pm »
Привет всем, мое решение.
  Спасибо за решение ,  по моему "ПриходнуюНакладную" не надо так усложнять , например излишне проверка  Учетной политики, потому что знать какая политика нужно только при списании, а на момент принятия товара по моему без разницы какая политика списания, ведь товар все равно надо принять в любом случае хоть списание потом будет по СРЕЕДНЕЙ хоть по ФИФОЛИФО, если я не правильно размышляю то поправьте меня
Да, все верно, но если политика будет ПО СРЕДНЕЙ, то партия товаров должна указываться не документ поступления, а что-то общее (я взял документ, которым меняют учетную политику).

Холодный Тимофей

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Тимофей Александрович Холодный
Re: 1.5
« Ответ #386 : Март 15, 2021, 07:17:44 pm »
Что-то я не понимаю, зачем пустая партия. Нельзя просто оставить также списывать кол по партиям при переходе на среднюю, а себестоимость считать по средней по итогам по номенклатуре из запроса без учета партии? Чем это плохо?
В этом случае будет проблема копеек и регистр в ноль не выйдет. Тк будет списание каждой партии по средней себестоимости. Либо будет неверно посчитана себестоимость списания (в какой-то момент она будет сильно отличаться от средней).
А это ошибка. При переходе на среднюю весь остаток должен быть оприходован как одна партия.