Имя: Пароль:
1C
1С v8
Дополнительные движения по регистру
0 Aldnepr
 
17.01.18
10:46
Необходимо одним доком перекидывать средства с одной кассы в другую , чтобы РасходныйКасовыйОрдер делал дополнительное движение по регистру денежные средства но тип движения Приход.Пробую через набор записей дополнить регистр, но не выходит. Видимо из за того что данный регистр задействован уже в модуле. Возможно ли попроще как то это решить?
Процедура ПровестиПоКассе2()
    Если ЗначениеЗаполнено(ЭтотОбъект.Касса2)=Истина тогда
НаборЗаписей = РегистрыНакопления.ДвиженияДенежныхСредств.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка);
Запись = НаборЗаписей.Добавить();
Запись.Регистратор = ЭтотОбъект.Ссылка;
Запись.Период= Дата;
Запись.БанковскийСчетКасса= Касса2;
Запись.ВидДенежныхСредств=Перечисления.ВидыДенежныхСредств.Наличные;
Запись.ПриходРасход=Перечисления.ВидыДвиженийПриходРасход.Приход;
Запись.СтатьяДвиженияДенежныхСредств=справочники.СтатьиДвиженияДенежныхСредств.ПрочиеРасходыДенежныхСредств;
Запись.ДокументДвижения=ЭтотОбъект.Ссылка;

Запись.Сумма= ЭтотОбъект.СуммаДокумента;
Запись.СуммаУпр= ЭтотОбъект.СуммаДокумента;
НаборЗаписей.Записать(Ложь);
1 D3O
 
17.01.18
10:51
(0) отбор установил. хорошо. а Прочитать?
2 Рэйв
 
17.01.18
10:56
(0)зачем такие танцы с бубном?
Добавляй напрямую в движения документа и не парься. Только движения делай сначала .Прочитать() чтобы не затерет то что уже есть
3 Aldnepr
 
17.01.18
11:11
(2) Так а это разве не напрямую? Или еще проще можно? Стандартно же выгружается в таблицу все, потом в общих модулях эта табл. колошматиться. Но дело в том, что не записывает мои движения даже без прочитать(). видать регистр "занят" стандартной обработкой когда я пытаюсь в него что то дописать? Я свою эту процедуру вызываю после вот этой
УправлениеДенежнымиСредствами.ПровестиСписаниеДенежныхСредствУпр(
        СтруктураШапкиДокумента, мСтруктураПараметровДенежныхСредств, ТаблицаПлатежейУпр, Движения, Отказ, Заголовок);
4 hhhh
 
17.01.18
11:15
(2) Прочитать() как раз не надо. Оно затрет все новые движения старыми.
5 hhhh
 
17.01.18
11:17
(3) пиши в Движения, а не в НаборЗаписей. Это два параллельных метода, их не надо перемешивать. Или то, или это.
6 Рэйв
 
17.01.18
11:25
(4)неа, он просто потом добавит свои к набору и заново все запишет
7 Рэйв
 
17.01.18
11:26
хотя можно и не чиать, а просто  Набор.Записать(Ложь)
8 Рэйв
 
17.01.18
11:26
Это если все таки с набором:-)
9 hhhh
 
17.01.18
11:30
(8) ну в типовом Движения. Пока их нигде нет, поэтому прочитать в Наьор их не получится. Они конечно запишутся в самом конце. И затрут нахрен его самодельный набор. Хоть он головой о стенку будет биться - это ничего не решит.
10 Рэйв
 
17.01.18
11:32
(9)Это смотря когда он все это мутит - во время проведения или уже потом. А то в сабже не уточняется
11 Рэйв
 
17.01.18
11:32
я почему то поянял, что уже потом
12 Aldnepr
 
17.01.18
11:33
(10) в обработку проведения пытаюсь запхнуть.
13 hhhh
 
17.01.18
11:33
ну то есть ему надо сделать

Движения.Записать()
Набор.Прочитать();


а потом

Набор.Записать()
Движения.Прочитать()
14 Aldnepr
 
17.01.18
11:37
(13) т.е. При проведении такой фокус не удастся проделать насколько я понял?
15 Рэйв
 
17.01.18
11:40
(12)Тогда добавляй просто обычно движения как делают все белые люди. Зачем тебе какой то набор
16 Рэйв
 
17.01.18
11:41
Можешь даже вставить в место где идут стандартные движения по
ДвиженияДенежныхСредств
17 Aldnepr
 
17.01.18
11:58
(15)не записывает при проведении все равно. Видать стандартная обработка не дает все таки            
                Стр=Движения.ДенежныеСредства.Добавить();
        Стр.ВидДвижения=ВидДвиженияНакопления.Приход;
        стр.Организация=этотОбъект.Организация;
        стр.Период=Дата;
        стр.Регистратор=ЭтотОбъект.Ссылка;
        стр.БанковскийСчетКасса=ЭтотОбъект.Касса2;
        стр.Сумма=ЭтотОбъект.СуммаДокумента;
        стр.СуммаУпр=ЭтотОбъект.СуммаДокумента;
        движения.ДенежныеСредства.Записать(Ложь);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший