Запись набора записей БЕЗ замещения #786345


#0 by rustamoff
Знаю, что в наборе записей есть метод Записать и параметра Ложь этого метода должен добавлять записи, а не замещать. В обработчике Проведения пишу код ниже, но записи просто пропадают. В чем проблема? :
#1 by vyaz
Это модуль проведения, смотри свойства документа по очистке движений
#2 by h-sp
может СписокНоменклатуры пустой?
#3 by rustamoff
Оставлял по умолчанию, менял на Удалять автоматически и Не удалять, результат тот же.
#4 by rustamoff
Вот тут dt на 64кБ
#5 by Вафель
Записывать движения автоматически?
#6 by Вафель
Хотя нет такой опции
#7 by rustamoff
Записывать выбранные установлено.
#8 by rustamoff
нет, создаю документ с одной строкой - провожу, его же потом и перепровожу добавив еще одну строку в табличную часть, по идее должно быть две строки после перепроводки, но все движения просто стираются.
#9 by rustamoff
три движения должно быть, конечно
#10 by lxs
пятница завтра, подождали бы немного
#11 by h-sp
посмотрел твою базу. Всё нормально там у тебя. 2 движения появляются. Не 3. Всё четко. Ты наверно, не там смотришь движения, вот и не видишь.
#12 by rustamoff
Это прогресс, если увидел, может я не там смотрю. Посмотри модуль объекта, может стоит "//" перед Движения.ОстаткиНаСкладах.Записать(Ложь);
#13 by rustamoff
Если нет, то вот что я делаю в этой базе: 1. Предполагается, что в документе номер 5 уже есть два движения в регистре ОстаткиНаСкладах 2. Пишу в модуле объекта Движения.ОстаткиНаСкладах.Записать(Ложь); 3. Открываю документ 5, добавляю еще одну строку в табличну часть и перепровожу 4. На этом этапе в  ОстаткиНаСкладах по документу 5 должно быть два старых движения плюс три новых Что получаю на самом деле после 3 - стираются все движения документа номер 5
#14 by rustamoff
А что по пятницам тут, волшебство? )
#15 by lera01
С ума сойти. А если 10 раз документ перепроведешь, то 100500 записей будет?
#16 by lera01
к завтра тему подними - узнаешь.
#17 by DrShad
а у меня все получилось
#18 by DrShad
правда как и говорили в сколько раз проводишь, столько и добавляется
#19 by rustamoff
Хмм Ничего не менял в настройках?
#20 by DrShad
в настройках ничего, а в коде придется поменять
#21 by DrShad
вот эту строчку придется обрабатывать по условию, т.е. если нужно добавить движения, то ее не исполнять - во всех остальных случаях она нужна
#22 by DrShad
ну и Записывать(Ложь) аналогично
#23 by rustamoff
Если .Записывать = Истина не исполнять, то стандартное значение его Ложь. По документации наборы записей у которых это свойство Ложь не могут быть записаны. Покажи весь код модуля, что менял, пожалуйста.
#24 by DrShad
#25 by rustamoff
Спасибо, работает.
#26 by DrShad
про , не забудь
#27 by rustamoff
Как понять тогда Синтакс-П?
#28 by rustamoff
описание Записывать в СП, точнее
#29 by МимохожийОднако
ОФФ: Без бутылки никак.
#30 by RomanYS
а что там непонятного, при завершении проведения идет автоматическая запись всех наборов, у которых Записывать=Истина. При этом надо понимать, Набор.Записать в не которых случаях набор очищает и последующая (автоматическая) запись приведет к результату
#31 by DrShad
т.е. это [если значение свойства метаданного документа "Запись движений при проведении" в Конфигураторе выставлено в "Записывать выбранные". ] ты понял и нашел?
#32 by rustamoff
У меня какие-то проблемы к кнопкой Отправить - через раз работает. В соседней ветке сказали менять браузер.
#33 by DrShad
возможно, я хром юзаю
#34 by rustamoff
Записывать выбранные и стоит. Видимо очередность записи "автоматически" и запись явно через Записать набора записей имеет значение. В литературе написано что "автоматическе" так же вызывает метод Записать у выбранных наборов. Не понятно, почему затираются наборы.
#35 by rustamoff
В каких некоторых случаях?
#36 by rustamoff
Вот из литературы: При записи с проведением система автоматически запишет выбранные и незаписанные наборы записеи?, находящиеся в свои?стве Движения. Это еще один «сервис», обеспечиваемыи? свои?ством Движения. Отсюда следуют два важных вывода. Во-первых, если наборы записеи? необходимо записывать с добавлением, то это нужно выполнять в явном виде. т.к. при автоматическои? записи движении? они будут записаны с замещением. Но не показано как зто - в явном виде.
#37 by rustamoff
Если в "явном виде" это  Движения.ОстаткиНаСкладах.Записать(Ложь) тогда, судя по абзацу из книги, "автоматическая" запись не должна срабатывать.
#38 by rustamoff
Автоматически записывает, оказывается, метод Записать коллекции движений, который и реагирует на .Записывать=Истина А вот метод набора записей Записать никак не связан с .Записать=Истина. Кроме того, после его (набора записей) записи происходит очистка сего набора, а далее обработка проведения видит .Записывать=Истина и записывает уже пустой набор поверх только что записанного.
#39 by rustamoff
Поправка:  во второй строке должно быть конечно "никак не связан с .Записывать=Истина."
#40 by h-sp
метод Записать - это ручая запись, не автоматическая. Автоматически записывается после окончания КонецПроцедуры. То есть если у вас есть Записать, то вы должны понимать, что будет запись 2 раза, ручная ваша + автоматическая.
#41 by h-sp
то есть вам надо написать Записывать=Ложь чтобы второй раз не записало.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С