Вход | Регистрация


1С:Предприятие ::

Метки: 

Перепроведение документа

Я
   Sayan_mi
 
09.11.17 - 16:12
Народ никак не пойму в чем проблема.
При проведении документа запись в регистр пишется корректно. При повторном проведении текущая запись в регистре удаляется (как оно и надо) но новая не появляется.
Код вот:
ткНаборЗаписей = РегистрыСведений.УАЗ_РаботникиОрганизаций.СоздатьНаборЗаписей();
    ткНаборЗаписей.Отбор.Регистратор.Установить(Регистратор.Ссылка);
    Для Каждого Строка из Движения Цикл
        Элемент = ткНаборЗаписей.Добавить();
        Элемент.Регистратор         = Регистратор.Ссылка;
        Элемент.Организация         = Регистратор.Организация;
        Элемент.Период                 = Регистратор.Дата;
        Элемент.Сотрудник              = Строка.Сотрудник;
        Элемент.УАЗ_РабочееМесто    = Строка.УАЗ_РабочееМесто;
    КонецЦикла;    
    ткНаборЗаписей.Записать(Истина);
 
  Рекламное место пустует
   ComradeKite
 
1 - 09.11.17 - 16:24
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>)
Прочитать (Read)
Синтаксис:

Прочитать()
Описание:

Считывает записи из базы данных по установленному отбору.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример:

КурсыВалют = РегистрыСведений.КурсыВалют;
НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
НаборКурсов.Прочитать();
   Naumov
 
2 - 09.11.17 - 16:29
(0)    Для Каждого Строка из Движения Цикл
Кто есть твои движения?
   Sayan_mi
 
3 - 09.11.17 - 17:45
(1)Пробовал и прочитатать() тоже. В результате в ткНаборЗаписей появлялись две строки со старым значением в измерении УАЗ_РабочееМесто. Все остальное совпадало. После записи() в регистре сведений строчки по данному регистратору исчезали совсем. При следующем проведении появлялась опять, с новым значением.
(2)Необходимые для данного регистра данные из документа (массив структур).
   wondkind
 
4 - 10.11.17 - 05:38
(1) чтооо?! что вы говорите? Зачем читать набор перед "очисткой/перезаписью". Быстродействия много? А если отберу?
   wondkind
 
5 - 10.11.17 - 06:03
(3) покажи, пожалуйста, полный код процедуры этой
   wondkind
 
6 - 10.11.17 - 06:08
(5) и обрати внимание на настройку документа:
"Запись движений при проведении".

Да и вообще настройки документа касательно движений. У людей часто с этим проблемы возникают.

Вот недавно столкнулся с таким "багом":
документ открываешь, перепроводишь - движения норм. Не закрывая документ жмёшь провести миллион раз - появляется миллион движений в проводках. Переоткрываешь документ и проводишь еще раз - движения снова одни.
   Sayan_mi
 
7 - 10.11.17 - 07:14
(5)Я её целиком и привел. Ну разве что без вызова этой процедуры. Поигрался ещё со свойством НабораЗаписей Записывать. Опять таки что ложь что истина поведение одно и тоже. (6) лезть в настройки документа не хотелось бы у него и без моего регистра движений хватает.
   Sayan_mi
 
8 - 10.11.17 - 07:36
Да для уточнения конфа ЗиУП Корп 3.1.3.253 платформа 8.3.10.2561
   МимохожийОднако
 
9 - 10.11.17 - 07:40
(0) Надо писать в регистр из данных ДОКУМЕНТА, а не движений.
   1dvd
 
10 - 10.11.17 - 07:41
(9) +1
 
 
   wondkind
 
11 - 10.11.17 - 07:44
(9), (10) смотрите (3)
   МимохожийОднако
 
12 - 10.11.17 - 07:46
(11) И что там?
   wondkind
 
13 - 10.11.17 - 07:47
(12) наверно, описано что в переменной "Движения" хранится.
   МимохожийОднако
 
14 - 10.11.17 - 07:49
(13) А у меня кофе для гадания закончилось. Движения - они и в Африке движения, то бишь результат проведения документа.
   Sayan_mi
 
15 - 10.11.17 - 07:53
полный текст процедуры
&НаСервере
Процедура УАЗ_ПроведениеРабочихМест(Регистратор, Движения) Экспорт
    ткНаборЗаписей = РегистрыСведений.УАЗ_РаботникиОрганизаций.СоздатьНаборЗаписей();
    ткНаборЗаписей.Отбор.Регистратор.Установить(Регистратор.Ссылка);
    ткНаборЗаписей.Записывать = Истина;
    Для Каждого Строка из Движения Цикл
        Элемент = ткНаборЗаписей.Добавить();
        Элемент.Регистратор         = Регистратор.Ссылка;
        Элемент.Организация         = Регистратор.Организация;
        Элемент.Период                 = Регистратор.Дата;
        Элемент.Сотрудник              = Строка.Сотрудник;
        Элемент.УАЗ_РабочееМесто    = Строка.УАЗ_РабочееМесто;
    КонецЦикла;    
    ткНаборЗаписей.Записать(Истина);
КонецПроцедуры

Параметры Регистратор - документ объект
Движения массив структур данные из документа для записи в регистр.
   МимохожийОднако
 
16 - 10.11.17 - 07:56
(15) Структуру документа покажи и делай движения (т.е. записи в регистрах) из реквизитов документа.
(13) Ну как?
   Sayan_mi
 
17 - 10.11.17 - 08:01
(16) из реквизитов документа запись и идет, ну или из табличной части (там несколько документов, как следствие либо есть табличная часть и строк движений несколько либо нет и строка одна)
   wondkind
 
18 - 10.11.17 - 08:04
(16) я, пожалуй, буду честным и сольюсь. Я сам не знаю шо он хочет. Просто указал на слова автора. Не хотел как-то грубить.

(17) и вообще, в чём проблема - есть же отладчик, посмотри что происходит. И не называй свои переменные так же как и встроенные:

ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
Движения (RegisterRecords)
Использование:

Только чтение.
Описание:

Тип: КоллекцияДвижений.
Предоставляет доступ к коллекции наборов записей движений документа. Свойства коллекции содержат наборы записей движений документа, которые включены для данного документа в конфигурации. Имена свойств совпадают с именами объектов конфигурации, по которым могут совершаться движения, как они заданы в Конфигураторе.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
   МимохожийОднако
 
19 - 10.11.17 - 08:23
(17) Покажи структуру документа. Ты не привёл кода, который доказывает твои слова.
(18) не переживай )) Как понял,так и написал. Просто ТС не понимает, что перепутал причину (реквизиты документа) и следствие (движения документа)
   Sayan_mi
 
20 - 10.11.17 - 09:15
Ну в том что назвал переменную не корректно да не прав. Тут полазил по отладчику и понял что проблема не здесь. Запись в регистре нармально создаётся (перечитывал набор записей) она исчезает позже. Т.е. другие действия в документе её затирают. Сейчас буду трассировать дальше, а переменную переобзову.
   ComradeKite
 
21 - 10.11.17 - 09:54
Скорее всего в событии ПриЗаписи в модуле регистра сведений.



Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует