Имя: Пароль:
1C
1С v8
Как изменить добавляемый элемент в регистр сведений?
0 MAPATNK2
 
naïve
11.11.16
13:15
Вопрос - Как изменить добавляемый элемент в регистр сведений? Делаю в менеджере набора записей "ПриЗаписи". Значения присваиваются переменным, все отлично. Когда захожу в регистр, в полях пусто. Вот код:
Процедура ПриЗаписи(Отказ)
    Для каждого стр из ЭтотОбъект Цикл
        ЮникИД = стр.UniqID;
        Запрос = новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    УчастникиРазговора.UniquID,
        |    УчастникиРазговора.CollerID,
        |    УчастникиРазговора.Дата,
        |    УчастникиРазговора.Контрагент
        |ИЗ
        |    РегистрСведений.УчастникиРазговора КАК УчастникиРазговора
        |ГДЕ
        |    УчастникиРазговора.UniquID = &ЮникИД";
        Запрос.УстановитьПараметр("ЮникИД",ЮникИД);
        рез = Запрос.Выполнить().Выгрузить();
        Если Рез.Количество()>0 тогда
            для каждого  Номер из рез цикл
                Если стрдлина(Номер.CollerID)>=10 тогда
                    НомерКон = прав(Номер.CollerID,10);    
                    Запрос12 = новый Запрос;
                    Запрос12.Текст =
                    "ВЫБРАТЬ
                    |    НомераКомпании.Номер
                    |ИЗ
                    |    Справочник.НомераКомпании КАК НомераКомпании
                    |ГДЕ НомераКомпании.Номер ПОДОБНО &Ном1";
                    Запрос12.УстановитьПараметр("Ном1","%"+НомерКон);
                    Рез = Запрос12.Выполнить().Выгрузить();
                    Если Рез.Количество()=0 тогда    
                        стр.ИсходящийНомер = НомерКон;
                        попытка
                            стр.Контрагент_КонтактноеЛицо = Номер.Контрагент;
                        Исключение
                        КонецПопытки;
                    Иначе
                        стр.ВходящийНомер = НомерКон;
                    КонецЕсли;
                Иначе
                    Запрос12 = новый Запрос;
                    Запрос12.Текст =
                    "ВЫБРАТЬ
                    |    НомераКомпании.Номер
                    |ИЗ
                    |    Справочник.НомераКомпании КАК НомераКомпании
                    |ГДЕ НомераКомпании.Номер = &Ном1";
                    Запрос12.УстановитьПараметр("Ном1",Номер.CollerID);
                    Рез = Запрос12.Выполнить().Выгрузить();
                    Если Рез.Количество()=0 тогда    
                        стр.ИсходящийНомер = Номер.CollerID;
                        попытка
                            стр.Контрагент_КонтактноеЛицо = Номер.Контрагент;
                        Исключение
                        КонецПопытки;
                    Иначе
                        стр.ВходящийНомер = Номер.CollerID;
                    КонецЕсли;                    
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
        попытка
        ЭтотОбъект.Записать();
    исключение;
        КонецПопытки;
    КонецЦикла;
КонецПроцедуры    


Может кто поможет разобраться?
1 Lexey_
 
11.11.16
13:17
(0) а почему не в ПередЗаписью()?
2 MAPATNK2
 
naïve
11.11.16
13:18
А разница?
3 Lexey_
 
11.11.16
13:21
(2)
ПриЗаписи(<Отказ>)
Описание:
Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.
4 NafBF
 
11.11.16
13:22
(2) а как думаешь зачем два события тогда?
5 Мимохожий Однако
 
11.11.16
13:23
Зачем куча запросов в цикле? Одним не обойтись?
6 MAPATNK2
 
naïve
11.11.16
13:24
(5) Одним не смог?
7 MAPATNK2
 
naïve
11.11.16
13:24
Без вопроса
8 MAPATNK2
 
naïve
11.11.16
13:25
Когда делаю перед записью выдает ошибку - Запись не верна! Значение поля не соответствует установленному отбору: ЗаписиЗвонков: 08.11.2016 9:04:23, 2016/2016-11/2016-11-08_09-04-23_83466671408_73433443303.wav, 3433443303, 3 466 671 408, , , , , , , 0, 0, 1478577863.1421 (Регистр сведений: Записи звонков; Поле: ВходящийНомер)
9 Мимохожий Однако
 
11.11.16
13:27
Регистратор есть? Или независимый регистр?
10 MAPATNK2
 
naïve
11.11.16
13:32
(9) Ничего нет
11 MAPATNK2
 
naïve
11.11.16
13:36
Почему использовать "Перед ЗАписью" я понял, но все же не работает. Несколько запросов используется т.к. разный поиск осуществляется, позже попробую оптимизировать. На данном этапе мне нужно внеси изменения в добавляемый объект. Можно ли это сделать? Если да, то как? Хотя бы просто пример
12 youalex
 
11.11.16
13:39
(5) тут всё  - прекрасно.
13 Альбатрос
 
11.11.16
13:41
(11) Ты делаешь отбор и меняешь запись с этим отбором.
14 MAPATNK2
 
naïve
11.11.16
13:42
(13) Объясните пожалуйста подробней. Немного не понимаю. Как тогда менять добавляемую запись?
15 d546
 
11.11.16
13:45
(14) ты меняешь измерения записи скорее всего
16 d546
 
11.11.16
13:46
а зачем вообще делать эти все манипуляции в менеджере РС?
17 MAPATNK2
 
naïve
11.11.16
13:47
(16) А где делать?
18 MAPATNK2
 
naïve
11.11.16
13:48
(17) Просто вопрос - Как тогда менять добавляемую запись? Без разницы где, просто каким образом это можно делать?
19 Lexey_
 
11.11.16
13:49
(18) РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
СоздатьМенеджерЗаписи (CreateRecordManager)
Синтаксис:
СоздатьМенеджерЗаписи()

РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
СоздатьНаборЗаписей (CreateRecordSet)
Синтаксис:
СоздатьНаборЗаписей()
20 Альбатрос
 
11.11.16
13:49
(18) Вариант записывать СРАЗУ правильную запись не катит?
21 Мимохожий Однако
 
11.11.16
13:52
(18) Например, сделать отдельную форму для записи.
22 MAPATNK2
 
naïve
11.11.16
13:54
(20) Нет. Т.к записывается в другой обработке и нагружать её нет смысла.
23 Мимохожий Однако
 
11.11.16
13:54
(11) Запись не является объектом
24 d546
 
11.11.16
13:56
(22) если в этой мега обработке изначально заполняются кривые данные ты уверен, что она вообще нужна?

удали ее и напиши снова, так чтобы она делала все правильно и не была такой бесполезной фигней
25 MAPATNK2
 
naïve
11.11.16
14:01
Ладно, сам разберусь. Всем спасибо.
Закон Брукера: Даже маленькая практика стоит большой теории.