Имя: Пароль:
1C
1С v8
Изменение объектов регламентным заданием
,
0 Zupbp
 
16.10.19
09:10
Регламентные задания 1С могут получать изменять и записывать объекты ИБ (справочники, документы)? Задание выполнено без ошибок, но никакие объекты не изменены. В вем может быть причина?
1 piter3
 
16.10.19
09:12
Могут.Нормально описание сделайте
2 dka80
 
16.10.19
09:13
Могут.
Нет метода Записать(), например.
Выполнено без ошибок означает, что не возникло критических ошибок. Но это не значит, что код задания написан сколь-нибудь корректно. Отладчиком уже конечно же заходили?
3 Zupbp
 
16.10.19
09:23
Максимально просто:

Процедура ВыполнитьОбработку() Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                   |    СправочникНоменклатура.Ссылка КАК Ссылка
                   |ИЗ
                   |    Справочник.Номенклатура КАК СправочникНоменклатура
                   |ГДЕ
                   |    СправочникНоменклатура.Наименование ПОДОБНО ""%удалить%""";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Если ЗначениеЗаполнено(Выборка.Ссылка) Тогда
            ОбъектНоменклатура = Выборка.Ссылка.ПолучитьОбъект();
            ОбъектНоменклатура.Наименование = СтрЗаменить(ОбъектНоменклатура.Наименование, "удалить", "");
            ОбъектНоменклатура.Записать();
        КонецЕсли;    
    КонецЕсли;        
        
КонецПроцедуры
4 Zupbp
 
16.10.19
09:24
Если вручную нажму выполнение команды, всё обрабатывает. Через регламентное задание никаких действий.
5 ДенисЧ
 
16.10.19
09:26
(4) А у пользователя регзадания есть права на изменение этого справочника?
6 dka80
 
16.10.19
09:32
ЗаписьЖурналаРегистрации("Начало");
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                   |    СправочникНоменклатура.Ссылка КАК Ссылка
                   |ИЗ
                   |    Справочник.Номенклатура КАК СправочникНоменклатура
                   |ГДЕ
                   |    СправочникНоменклатура.Наименование ПОДОБНО ""%удалить%""";
    Выборка = Запрос.Выполнить().Выбрать();
ЗаписьЖурналаРегистрации("Выборка");
    Пока Выборка.Следующий() Цикл
ЗаписьЖурналаРегистрации("Цикл");
        Если ЗначениеЗаполнено(Выборка.Ссылка) Тогда
ЗаписьЖурналаРегистрации("Если");
            ОбъектНоменклатура = Выборка.Ссылка.ПолучитьОбъект();
            ОбъектНоменклатура.Наименование = СтрЗаменить(ОбъектНоменклатура.Наименование, "удалить", "");
            ОбъектНоменклатура.Записать();
        КонецЕсли;    
    КонецЕсли;

И зачем вот это:   Если ЗначениеЗаполнено(Выборка.Ссылка) Тогда
как оно может быть не заполнено?
7 Zupbp
 
16.10.19
09:32
(5) права есть
8 dka80
 
16.10.19
09:34
А ты уверен, что тебе в форме списка или объекта отображается реквизит "Наименование"? После выполнения регзадания консолью запросов выбери данные и посмотри значение реквизита Наименование
9 palsergeich
 
16.10.19
09:45
(5) есть, иначе был бы отлуп.
В номенклатуре много наименований, проверьте что меняете и проверяете действительно Наименование
10 Zupbp
 
16.10.19
10:01
(9) Все проверил. Вызываю эту же процедуру этой же обработки по кнопке, отрабатывает. Глюк какой-то
11 catena
 
16.10.19
10:05
(10)Отсечки из (6) проверил?
12 vova1122
 
16.10.19
10:13
(0) Покажи процедуру ПриЗаписи и ПередЗаписю модуля объекта
13 hhhh
 
16.10.19
10:30
(10) да, призаписи и послезаписи запускается общий модуль, который недоступен на сервере.
14 Cyberhawk
 
16.10.19
10:31
(10) Покажи где кнопка
15 Cyberhawk
 
16.10.19
10:31
(13) Вряд ли он прям из формы объекта какую-то там кнопку вызывает
16 D_E_S_131
 
16.10.19
10:32
ТС, а зачем запросе конструкция "РАЗЛИЧНЫЕ"? :)
17 Cyberhawk
 
16.10.19
10:32
Ну и проверить имя метода, указанное в свойствах РЗ
18 hhhh
 
16.10.19
10:38
(15) ну может он в толстом клиенте? из формы всё записывается, а в регзадании на сервере недоступно.
19 Cyberhawk
 
16.10.19
10:53
(18) А про что тогда в "призаписи и послезаписи"?
20 Cyberhawk
 
16.10.19
10:53
В (13)
21 hhhh
 
16.10.19
11:36
(19) передзаписью, ошибся
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.