|   |   | 
| 
 | ВыполнитьПриход() и ВыполнитьРасход() по одному и тому же регистру | ☑ | ||
|---|---|---|---|---|
| 0
    
        Slon747 12.02.18✎ 12:57 | 
        При проведении документа нужно делать как приход, так и расход.
 Делаю так: ТаблицаПриходов = Запрос.Выполнить().Выгрузить(); НаборДвижений = Движения.НакопленныеБонусы; ТаблицаДвижений = НаборДвижений.Выгрузить(); ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПриходов, ТаблицаДвижений); НаборДвижений.мПериод = Дата; НаборДвижений.мТаблицаДвижений = ТаблицаДвижений; НаборДвижений.ВыполнитьПриход(); После этого делаю расход. Всё то же самое (кроме самих данных), только НаборДвижений.ВыполнитьРасход(); В результате, В расходе оказываются строки, которые должны быть только в приходе. Что не так? P.S. У документа "Запись движений при проведении" - "Записывать модифицированные" | |||
| 1
    
        Defender aka LINN 12.02.18✎ 14:27 | 
        (0) А чистить таблицу - не царское дело?     | |||
| 2
    
        Slon747 12.02.18✎ 14:51 | 
        (1) Между приходом и и расходом делал ТаблицаДвижений.Очистить()
 Не помогает. | |||
| 3
    
        hhhh 12.02.18✎ 14:56 | 
        (2) ну, процедуру ВыполнитьРасход() в студию.     | |||
| 4
    
        Малыш Джон 12.02.18✎ 14:59 | 
        (2) а таблица расходов как определяется? тоже =Запрос.Выполнить.Выгрузить()?     | |||
| 5
    
        lodger 12.02.18✎ 15:03 | 
        (0) ВыполнитьПриход и ВыполнитьРасход это такие процедуры, они есть в вашем модуле набора записей.
 как там внутри описано так и работает. 146% что они предназначены отразить только приход или только расход. т.е. для "делать как приход, так и расход." - надо своё колхозить. | |||
| 6
    
        Slon747 12.02.18✎ 15:06 | 
        (3) ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(ЭтотОбъект, ВидДвиженияНакопления.Расход);
 Далее в ВыполнитьДвижениеПоРегистру() код из типовой, подобной УТ10. (4) Да (5) Но я же их выполняю по очереди. Отдельно они работают правильно. А последовательно - задваиваются движения. | |||
| 7
    
        Малыш Джон 12.02.18✎ 15:08 | 
        (6) а запрос между
 ТаблицаПриходов = Запрос.Выполнить().Выгрузить(); и ТаблицаРасходов = Запрос.Выполнить().Выгрузить(); как-то меняется? | |||
| 8
    
        lodger 12.02.18✎ 15:13 | 
        (6) а после ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(ЭтотОбъект, ВидДвиженияНакопления.Расход);
 что написано? ЭтотОбъект.Движения.Загрузить(чето)? | |||
| 9
    
        Slon747 12.02.18✎ 15:16 | 
        (7) Ну да. Разные данные в двух ТЗ.
 (6) Только это: Процедура ВыполнитьРасход() Экспорт ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(ЭтотОбъект, ВидДвиженияНакопления.Расход); КонецПроцедуры | |||
| 10
    
        lodger 12.02.18✎ 15:21 | 
        (9) ну так не используй ВыполнитьРасход и ВыполнитьПриход если не хочешь читать как они работают. напиши свой велосипед.     | |||
| 11
    
        Slon747 12.02.18✎ 15:22 | 
        (10) Придется так и сделать.
 Просто не первый раз с этим сталкиваюсь, думал, ответ на поверхности. | |||
| 12
    
        lodger 12.02.18✎ 15:25 | 
        (11) ответ на поверхности, в общем модуле ОбщегоНазначения процедуру звать ВыполнитьДвижениеПоРегистру()     | |||
| 13
    
        cw014 12.02.18✎ 15:28 | 
        (2) А НаборДвижений.мТаблицаДвижений.Очистить() делал?     | |||
| 14
    
        Slon747 12.02.18✎ 15:37 | 
        (13) Делал. Всё также, в движения Расход добавляются записи из таблицы прихода.     | |||
| 15
    
        hhhh 12.02.18✎ 15:39 | 
        (14) ну делай так
 ТаблицаПриходовИРасходов = Запрос.Выполнить().Выгрузить(); НаборДвижений = Движения.НакопленныеБонусы; ТаблицаДвижений = НаборДвижений.Выгрузить(); ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПриходовИРасходов, ТаблицаДвижений); НаборДвижений.мПериод = Дата; НаборДвижений.мТаблицаДвижений = ТаблицаДвижений; | |||
| 16
    
        Малыш Джон 12.02.18✎ 15:45 | 
        (14) вообще, по хорошему, у процедур ВыполнитьРасход() и ВыполнитьПриход() должен быть параметр Замещать(который по умолчанию Истина)
 в твоей конфе точно такого нет? | |||
| 17
    
        Slon747 12.02.18✎ 15:52 | 
        (15) Что это будет? Все строки ТЗ уйдут в приход?
 (16) Ни у ВыполнитьПриход() ни у ВыполнитьДвижениеПоРегистру() такого нет. | |||
| 18
    
        Малыш Джон 12.02.18✎ 15:55 | 
        (17) Ну в общем, где-то у тебя есть строка .Записать();
 (например ЭтотОбъект.Записать();) так вот, в первый раз должно быть ЭтотОбъект.Записать(), а второй - ЭтотОбъект.Записать(Ложь) | |||
| 19
    
        Малыш Джон 12.02.18✎ 15:57 | 
        + (18) или ищи как существующий код использовать таким образом,
 или ручками записывай наборы | |||
| 20
    
        Slon747 12.02.18✎ 16:14 | 
        Сделал по-старинке, вручную добавляя строки в движения     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |