Имя: Пароль:
1C
1С v8
Добавление записи в РС УФ
0 Krolik Bezobraznik
 
04.09.18
12:42
Вроде не пятница, подскажите в чем может быть загвоздка. Гугл меня уже баннит.

УФ. Добавляю запись в РС, которые не подчинен регистраторам и не является переодическим.

Добавляю запись на сервере. После добавления проверяю в отладчике количество записей - все ок. Даже если в этот момент запустить толстый клиент и открыть РС - запись существует. Но после того как из серверной процедуры отладчик переходит в клиентскую из которой была вызвана - запись пропадает.

В чудеса не верю - догадки кончились.
1 Кац
 
04.09.18
13:09
не понял, набор записей расположен на форме?
2 Krolik Bezobraznik
 
04.09.18
13:13
(1) Нет конечно. Добавление вызываетя из формы по кнопке. Набор записей заполняется и записывается на сервере.
3 Кац
 
04.09.18
13:15
как бы намекаешь, что запись из БД вообще чтоль пропадает?
4 Krolik Bezobraznik
 
04.09.18
13:16
(3) Про БД не знаю, а вот в РС она исчезает.
5 Кац
 
04.09.18
13:19
бггг
6 Кац
 
04.09.18
13:19
показывай как добавляешь запись
7 Krolik Bezobraznik
 
04.09.18
13:21
РС с двумя измерениями: НомерЗаписи и НомерЗаписиПартии

Процедура находится в модуле менеджера РС

    НаборЗаписей = РегистрыСведений.WMS_ХранилищеФайловУчетныхПартий.СоздатьНаборЗаписей();
        НаборЗаписей.Прочитать();
        НоваяЗапись = НаборЗаписей.Добавить();
        НоваяЗапись.ДатаДобавления = ДатаДобавления;
        НоваяЗапись.ВидДокумента = ВидДокумента;
        НоваяЗапись.НомерЗаписиПартии = СтруктураНомеров.НомерЗаписиВЖурналеПартий;
        НоваяЗапись.Комментарий = Комментарий;
        НоваяЗапись.ПутьКФайлу = ПутьКФайлуВХранилище;
        НоваяЗапись.Ответственный = ПараметрыСеанса.ТекущийПользователь;
        новаяЗапись.ИмяФайла = ИмяФайлаВХранилище;
        НовыйНомер = ПолучитьНовыйНомерЗаписи();
        
        НоваяЗапись.НомерЗаписи = НовыйНомер;
        
        Попытка
            НаборЗаписей.Записать();
            НаборЗаписей.Прочитать();
            
            ДобавлениеУспешно = Истина;
        Исключение
            ДобавлениеУспешно = Ложь;
        КонецПопытки;
8 DrWatson
 
04.09.18
13:26
Может пропадать, если не записана транзакция.
9 Кац
 
04.09.18
13:30
Какое то добавление записи через жопу
10 Кац
 
04.09.18
13:34
11 hhhh
 
04.09.18
13:36
(7) а где у вас отбор? ВЫ что целиком регистр зачитываете каждый раз?
12 Krolik Bezobraznik
 
04.09.18
13:38
(11) Нет, это я для проверки количества записей сделал. Чтобы можно было проверить до добавления и после в отладчике. Конечно код немного не такой
13 Krolik Bezobraznik
 
04.09.18
13:40
(8) не завершенные транзакции действительно были. Убрал я их.. пока не полегчало
14 Krolik Bezobraznik
 
04.09.18
13:41
(9) В данном случае не имеет значение каким образом я записываю новую запись в РС. Хоть через плечо. Дело в том, что я знаю точно, что пока отладчик находится на сервере - запись в РС появляется и существует до момента пока отладчик не выйдет с сервера обратно в клиента.
15 hhhh
 
04.09.18
13:42
(14) а в ПолучитьНовыйНомерЗаписи() чего там? тоже создание регистра?
16 Krolik Bezobraznik
 
04.09.18
13:43
(15) Функция ПолучитьНовыйНомерЗаписи()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    WMS_ХранилищеФайловУчетныхПартий.НомерЗаписи КАК НомерЗаписи
        |ИЗ
        |    РегистрСведений.WMS_ХранилищеФайловУчетныхПартий КАК WMS_ХранилищеФайловУчетныхПартий
        |
        |УПОРЯДОЧИТЬ ПО
        |    НомерЗаписи УБЫВ";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
        Возврат ВыборкаДетальныеЗаписи.НомерЗаписи + 1 ;
    Иначе
        Возврат 1;    
    КонецЕсли;
    
КонецФункции
17 DrWatson
 
04.09.18
13:45
(13) Проверь на всякий случай, ТранзакцияАктивна() перед возвратом на клиент что выдаёт?
18 Krolik Bezobraznik
 
04.09.18
13:46
(17) хм.. активна сейчас буду искать где она начинается
19 catena
 
04.09.18
13:48
(7)Добавление записи РС в модуле менеджера РС? Того же самого РС? И в какой же процедуре?
20 Krolik Bezobraznik
 
04.09.18
13:49
(17) Доктор, спасибо. Вылечили мою пятничную голову. :) Можно закрывать топ.

Всем спасибо за участие.
21 Krolik Bezobraznik
 
04.09.18
13:49
(19) Да
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан