Имя: Пароль:
1C
1С v8
Движение по регистру ПартииТоваровНаСкладах
0 ifoxy
 
24.10.11
16:11
Здравствуйте! я пытаюсь подправить в УТ 10.3 движение одного документа по регистру ПартииТоваровНаСкладах и наткнулась на такую ситуацию: если в документе после выполнения всех движений посмотреть в отладчике "Движения" то увидим, что документ сделал движения по двум регистрам, но ПартииТоваровНаСкладах среди них нет, он пустой. А когда в режиме пользователя смотрим двыижения по регистрам, то оказыватеся что движения по этому регистру все же есть. Так как же увижеть в отладчике где хранятся эти движения?
1 Господин ПЖ
 
24.10.11
16:13
а может тебе еще рано править?
2 DrShad
 
24.10.11
16:13
ооооо это супермегасильное колдунство
переходи на УТ 11 там нет этого регистра
3 mikecool
 
24.10.11
16:13
какие у тебя ... глаза ))))
4 mikecool
 
24.10.11
16:13
смотри модуль набора записей регистра
5 DenSpb
 
24.10.11
16:14
Ты в какой момент смотришь остатки в отладчике?
6 Ногаминебить
 
24.10.11
16:14
Небось пытаешься посмотреть отладчиком кусок кода, выполняемый на сервере?
7 ifoxy
 
24.10.11
16:15
а я между прочим серьезно спрашиваю, и очень надеюсь на вашу помощь...
8 mikecool
 
24.10.11
16:15
(7) поставь останов в (4)
9 Megas
 
24.10.11
16:16
Да недавно с этим же боролся, так и не понял где смотреть все записи.

Так вот все движения которые ты видишь "в отладчике "Движения"" Это движения сделанные твоим документом из его модуля. Другие движения делаются из общего модуля и через "отладчик "Движения"" их не видно
10 ifoxy
 
24.10.11
16:17
смотрю ДвиженияПоРегистрам в самой последней строке, а дальше только КонецПроцедуры и все...
11 mikecool
 
24.10.11
16:17
УПП, Процедура ЗаписатьДвиженияДокументаРегл(СтруктураПараметров, ТаблицаСписания, Замещать)
вот здесь можно смотреть
12 mikecool
 
24.10.11
16:18
+11 ОМ УправлениеЗапасамиПартионныйУчет
13 mikecool
 
24.10.11
16:18
а правильно (4)
14 Megas
 
24.10.11
16:22
(11) Особенно хорошо в этой процедуре ставить точку остонова особенно на работающей базе (где пользователи трудятся)!
15 ifoxy
 
24.10.11
16:24
Тогда объясните пожалуйтса у меня есть движения которые делает документ, они создаются в общих модулях, а мне нужно помимо этих движений добавить еще другие, я написала в модуле документа функцию которая делает остальные движения. Но почему то она затирает те который были в документе изначально, как так?
16 Megas
 
24.10.11
16:25
(15) Что то ты делаешь не так!

Код в студию
17 ifoxy
 
24.10.11
16:25
ммм его много...
18 ifoxy
 
24.10.11
16:30
Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоКомплектующим, ТаблицаПоКомплектам, ТаблицаПоДопРасходам, Отказ, Заголовок);
....
Если УчетнаяПолитика.СписыватьПартииПриПроведенииДокументов Тогда

       ТаблицаСписания = Движения.СписанныеТовары.Выгрузить();
       
       УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка,ТаблицаСписания,,,,,Истина);
       ДвиженияДобавленияВСтоимостьПродукцииУслуг(СтруктураШапкиДокумента, ТаблицаПоДопРасходам, Отказ, Заголовок, РежимПроведения)

   Иначе

       // В неоперативном режиме границы последовательностей сдвигаются назад, если они позже документа.
       Если РежимПроведения = РежимПроведенияДокумента.Неоперативный Тогда
           УправлениеЗапасамиПартионныйУчет.СдвигГраницыПоследовательностиПартионногоУчетаНазад(Дата, Ссылка, Организация);
       КонецЕсли;

   КонецЕсли;

КонецПроцедуры // ДвиженияПоРегистрам()

Процедура ДвиженияДобавленияВСтоимостьПродукцииУслуг(СтруктураШапкиДокумента, ТаблицаПоПродукции,   //Для Доп.расходов
                                Отказ, Заголовок, РежимПроведения)
   
   Если не ОтражатьВУправленческомУчете Тогда
       Возврат;
   КонецЕсли;

НаборДвижений = Движения.ПартииТоваровНаСкладах;

       // Получим таблицу значений, совпадающую со струкутрой набора записей регистра.
       ТаблицаДвижений = НаборДвижений.Выгрузить();
       ТаблицаДвижений.Очистить();
       
       ТабПартий = ТаблицаПоПродукции.Скопировать();

// Заполним таблицу движений.
       ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТабПартий, ТаблицаДвижений);

       Для каждого СтрокаДвижений Из ТаблицаДвижений Цикл
           
           СтрокаТЧ = ТабПартий.Найти(СтрокаДвижений.НомерСтроки, "НомерСтроки");
           
           // Если партионный учет по сериям не ведется, то надо очистить серию
           Если НЕ СтрокаТЧ.ВестиПартионныйУчетПоСериям Тогда
               СтрокаДвижений.СерияНоменклатуры = Неопределено;
           КонецЕсли;
           
       КонецЦикла;

       ТаблицаДвижений.ЗаполнитьЗначения(0, "Количество");
       ТаблицаДвижений.ЗаполнитьЗначения(Перечисления.КодыОперацийПартииТоваров.ПоступлениеДопРасходов, "КодОперации");

       // Если нет парт. учета по складам, склад не заполняется
       Если НЕ СтруктураШапкиДокумента.ВестиПартионныйУчетПоСкладам Тогда
           ТаблицаДвижений.ЗаполнитьЗначения(Неопределено, "Склад");
           
       КонецЕсли;
       
       // При учете по-средней документ оприходования не пишется
       //Если СтруктураШапкиДокумента.СпособОценкиМПЗ = Перечисления.СпособыОценки.ПоСредней Тогда
           ТаблицаДвижений.ЗаполнитьЗначения(Неопределено, "ДокументОприходования");
       //КонецЕсли;
       
       НаборДвижений.мПериод          = Дата;
       НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;

       Если Не Отказ Тогда
           Движения.ПартииТоваровНаСкладах.ВыполнитьПриход();
       КонецЕсли;
КонецПроцедуры // ДвиженияПоРегистрамУпр()
19 ifoxy
 
24.10.11
16:31
в таблице ТаблицаПоДопРасходам храница информация для проводок
20 Beduin
 
24.10.11
16:34
Где метод Записать()?
21 ifoxy
 
24.10.11
16:35
думаю вот  Движения.ПартииТоваровНаСкладах.ВыполнитьПриход();
22 ifoxy
 
24.10.11
16:35
эти проводки работают, но затирают прежние
23 Beduin
 
24.10.11
16:37
(0) Если по теме, то надо их Прочитать(), тогда увидишь.
24 ifoxy
 
24.10.11
16:42
если не хотите разбираться в коде, напишите хотя бы колючевые моменты как это должно быть
25 Megas
 
24.10.11
16:45
Помоему надо движения прочитать сначало, а потом дописывать
26 Beduin
 
24.10.11
16:46
(24) Движения.ПартииТоваровНаСкладах.Прочитать();
Вот эту строчку добавь где надо прочитать.
27 hhhh
 
24.10.11
16:48
(24) ключевые моменты:
1. если нет явной команды Записать(), то система сама записывает движения в конце транзакции. Это уже после КонецПроцедуры и в отладчике их не увидишь.

2. Если они там пишут через НаборЗаписей, а ты пишешь через движения, то ты затираешь их набор записей или наоборот они затирают твои движения. Тогда как в (26)   Движения.ПартииТоваровНаСкладах.Прочитать();
28 ifoxy
 
24.10.11
17:06
Спосибо, получилось =)
2 + 2 = 3.9999999999999999999999999999999...