gifts2017

Заполнение серий в документе по остаткам

Опубликовал Георгий Меркулов (McLer) в раздел Обработки - Обработка документов

Заполняет серии в документах Реализация товаров и услуг, списание, перемещение, отчет о розничных продажах по остаткам на конкретную дату или дату документа.

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

Данная обработка заполняет серии в документах Реализация товаров и услуг, списание, перемещение, отчет о розничных продажах по остаткам на конкретную дату или дату документа.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Заполнение серий на дату по остаткам
.epf 8,75Kb
31.05.12
98
.epf 8,75Kb 98 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Spektr Тунда (Spektr) 30.05.12 15:21
В УПП 1.3.26.1 документ Перемещение товаров ошибка:
{Форма.Форма.Форма(118)}: Слишком много фактических параметров
СтруктураОтбора.Вставить("Номенклатура, ХарактеристикаНоменклатуры" , ТекСтрокаТовары.Номенклатура, ТекСтрокаТовары.ХарактеристикаНоменклатуры);
2. Георгий Меркулов (McLer) 30.05.12 19:02
(1) Spektr, ага, увидил ошибку, исправлю, сегодня перезалью.
3. Георгий Меркулов (McLer) 30.05.12 20:39
(1) Spektr, перезалил, проверяйте.
4. Spektr Тунда (Spektr) 31.05.12 10:39
В УПП 1.3.26.1 документ Реализация товаров ошибка:
{Форма.Форма.Форма(123)}: Ошибка при вызове метода контекста (Выполнить)
	ТаблицаОстатков = Запрос.Выполнить().Выгрузить();
по причине:
{(2, 12)}: Поле не найдено "ВТ_Товары.Номенклатура"
ВТ_Товары.<<?>>Номенклатура,
...Показать Скрыть
5. Георгий Меркулов (McLer) 31.05.12 12:22
(4) Spektr, сам проверил все работает, скачайте еще раз файл.
6. Spektr Тунда (Spektr) 31.05.12 16:19
(5) McLer, В УПП 1.3.26.1 для документа Реализация товаров работает когда исправил код:

	//Если ТЧ.Колонки.Найти("Склад") <> Неопределено Тогда
	//	СкладТЧ = Истина;
	//	СтрокаКолонок = ", Склад";
	//Иначе
		СкладТЧ = Ложь;
	//КонецЕсли;
...Показать Скрыть
7. Георгий Меркулов (McLer) 31.05.12 19:11
(6) Spektr, если у вас нет складов в ТЧ, то не страшно. А если есть то надо чтобы вот так было:
Если ТЧ.Колонки.Найти("Склад") <> Неопределено Тогда
      СкладТЧ = Истина;
      СтрокаКолонок = СтрокаКолонок + ", Склад";
   Иначе
      СкладТЧ = Ложь;
   КонецЕсли;
...Показать Скрыть
8. Spektr Тунда (Spektr) 01.06.12 08:33
(7) McLer, В УПП 1.3.26.1 для документа Перемещение товаров работает без исправления, а для документа Реализация товаров работает только тогда когда исправил код.
Ошибка непонятная:
{Форма.Форма.Форма(123)}: Ошибка при вызове метода контекста (Выполнить)
ТаблицаОстатков = Запрос.Выполнить().Выгрузить();
по причине:
{(2, 12)}: Поле не найдено "ВТ_Товары.Номенклатура"
ВТ_Товары.<<?>>Номенклатура,
При чем здесь СкладТЧ?
Хотя в зависимости от этого параметра формируется запрос.
9. Георгий Меркулов (McLer) 01.06.12 15:01
(8) Spektr, ошибка в Вашем варианте строке
//   СтрокаКолонок = ", Склад";
нужно чтобы было
СтрокаКолонок = СтрокаКолонок + ", Склад";
иначе когда есть склад в ТЧ, то переменная СтрокаКолонок перезатирается и в итоге в запросе колонок номенклатура и характеристика не хватает.
10. Spektr Тунда (Spektr) 13.06.12 10:44
(7) McLer, согласен.
Исправил СтрокаКолонок = ", Склад";
на
СтрокаКолонок = СтрокаКолонок + ", Склад";
Благодарю.
11. Вадим Абрамович (alchimic) 08.08.12 16:30
12. alex Alex (shuhorov) 19.10.12 12:03
13. Yuriy Rozmyslov (Squisher) 03.03.15 15:43
на УТ 10.3.13.2 при условии что товар разделяется по сериям на строки, например было 4 шт по 30 руб (в сумме 120 руб), стало 2+2, то в строки подставляется такая же сумма что и была в первой строке, т.е. 2*30=120 первая строка и 2*30=120 с другой серией другая строка.

решается добавлением кода в конце процедуры:

Для Каждого ТекСтрокаТовары Из ТабЧасть Цикл
	ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ТекСтрокаТовары, ДокументОбъект);
	ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(ТекСтрокаТовары, ДокументОбъект);
КонецЦикла;
КонецПроцедуры // ИЛ_ЗаполнитьСерииИСтавкиНДС()

...Показать Скрыть
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа