Имя: Пароль:
1C
1С v8
Проведение по партиям
0 Serg23KmUa
 
26.07.12
22:28
Здравствуйте.
Хочу выполнить проведение по партиям за 2012 год (не проставляется вся себестоимость).
За предыдущие периоды все нормально.
Возможно тупой вопрос, но есть ли подобная обработка, чтобы провести по партиям за определенный период?
Спасибо
1 GROOVY
 
26.07.12
22:36
Дарю.    


Блокировка = Новый БлокировкаДанных;
   ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.СтоимостьТоваров");
   ЭлементБлокировки.ИсточникДанных = СписокТоваров;
   ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
   ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
   Блокировка.Заблокировать();
   
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ПродажаТоваровСписокТоваров.Номенклатура,
   |    СУММА(ПродажаТоваровСписокТоваров.Количество) КАК Количество,
   |   СУММА(Сумма) КАК Выручка
   |ПОМЕСТИТЬ ДокТЧ
   |ИЗ
   |    Документ.ПродажаТоваров.СписокТоваров КАК ПродажаТоваровСписокТоваров
   |ГДЕ
   |    ПродажаТоваровСписокТоваров.Ссылка = &Ссылка
   |
   |СГРУППИРОВАТЬ ПО
   |    ПродажаТоваровСписокТоваров.Номенклатура
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ДокТЧ.Номенклатура КАК Номенклатура,
   |    ДокТЧ.Количество КАК Количество,
   |   ДокТЧ.Выручка КАК Выручка,
   |    СтоимостьТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток,
   |    СтоимостьТоваровОстатки.СтоимостьОстаток,
   |    СтоимостьТоваровОстатки.Партия КАК Партия
   |ИЗ
   |    ДокТЧ КАК ДокТЧ
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьТоваров.Остатки(&МоментВремени, ) КАК СтоимостьТоваровОстатки
   |        ПО ДокТЧ.Номенклатура = СтоимостьТоваровОстатки.Номенклатура
   |
   |УПОРЯДОЧИТЬ ПО
   |    Партия.МоментВремени "+ ?(МетодСписания = Перечисления.МетодыСписания.FIFO , "ВОЗР" , "УБЫВ") +"
   |ИТОГИ
   |    МАКСИМУМ(Количество),  МАКСИМУМ(Выручка),
   |    СУММА(КоличествоОстаток)
   |ПО
   |    Номенклатура";
   
   Запрос.УстановитьПараметр("МоментВремени", МоментВремени() );
   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   
   Результат = Запрос.Выполнить();
   
   Движения.СтоимостьТоваров.Записывать = Истина;
   Движения.СтоимостьТоваров.Очистить();
       
   Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока Выборка.Следующий() Цикл
       Если Выборка.Количество > Выборка.КоличествоОстаток Тогда
           Сообщить("Ой, чейта мало товаров!");
           Отказ = Истина;
           Продолжить;
       КонецЕсли;
       
       ВыборкаПартии = Выборка.Выбрать();
       
       ОсталосьСписать = Выборка.Количество;
       
       СебестоимостьИтого = 0;
       
       Пока ВыборкаПартии.Следующий() И ОсталосьСписать <> 0 Цикл
           
           Списать = МИН(ОсталосьСписать, ВыборкаПартии.КоличествоОстаток);
           
           Себестоимость = Списать / ВыборкаПартии.КоличествоОстаток * ВыборкаПартии.СтоимостьОстаток;
           
           СебестоимостьИтого = СебестоимостьИтого + Себестоимость;
           
           Запись = Движения.СтоимостьТоваров.ДобавитьРасход();
           Запись.Период = Дата;
           Запись.Номенклатура = ВыборкаПартии.Номенклатура;
           Запись.Количество = Списать;
           Запись.Стоимость = Себестоимость;
           Запись.Партия = ВыборкаПартии.Партия;
           Запись.ПризнакПродажи = Истина;
           
           ОсталосьСписать = ОсталосьСписать - Списать;
       КонецЦикла;
       
   
   КонецЦикла;
2 GROOVY
 
26.07.12
22:37
Все что выше обрамляешь запросом по списку доков за нужный период и готово!
3 GROOVY
 
26.07.12
22:38
Вот, кстати, еще похожая тема: v8: Обработка проведение по партиям
4 AlexNew
 
26.07.12
22:47
Запрос в цикле? Оригинально.
5 rotting
 
26.07.12
22:48
(4) где ты это увидел?
6 AlexNew
 
26.07.12
22:50
(5) см (2)
7 zak555
 
26.07.12
22:53
(6)

замени

ПродажаТоваровСписокТоваров.Ссылка = &Ссылка

на


ПродажаТоваровСписокТоваров.Ссылка в &СпискеСсылком
8 AlexNew
 
26.07.12
22:56
(7) Получи таблицу значений и вычитай.
9 Serg23KmUa
 
26.07.12
22:59
ого). Еще объясните дураку куда этот код вставить)
10 GROOVY
 
26.07.12
23:01
(9) я думаю Вам то это очевидно, судя по постановке вопроса. Предположу что в конфигурацию "Управление степным хозяйством для Казахстана 5.0" в виде обработки. Я прав?
11 AlexNew
 
26.07.12
23:01
(9) Никуда не надо.
12 Serg23KmUa
 
26.07.12
23:03
(9) Ну практически). УТ 8.1 релиз 2.3)
13 GROOVY
 
26.07.12
23:04
(12) Ну вот уже другое дело... :)
Там же вроде есть родная... Я не спец в УТ.
14 AlexNew
 
26.07.12
23:07
(12) Убрали проведение по партиям с документом (так быстрее, кто-то посоветовал), стандартную обработку, какую надо делать при таком режиме на пользовали? Угадал? Или тебя на работу взяли в это время?
15 Serg23KmUa
 
26.07.12
23:07
(13) родная то есть, я ей какое то время успешно пользовался. Но сейчас надо только 2012 год восстановить
16 AlexNew
 
26.07.12
23:11
(12) Это что? УТ 8.1 релиз 2.3)
17 rotting
 
26.07.12
23:11
(15) пойми что последовательность нельзя восстанавливать с какого захочешь периода, оно конечно можно, но лучше правильно все делать
18 GROOVY
 
26.07.12
23:12
(16) Тссс....
19 pumbaEO
 
26.07.12
23:13
(16) УТ Украина 2.3
20 AlexNew
 
26.07.12
23:15
(19) А я просто по мове - слабо, сразу не понял.
21 AlexNew
 
26.07.12
23:18
(10) Ну видишь - Украина, а ты - Казахстан, Казахстан:) Что непонятного?