![]() |
|
OFF: Мелочи и нюансы | ☑ | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
Мультук
гуру
28.07.23
✎
14:54
|
Есть некий проведенный документ. Пусть это будет ссылкаРТУ
Программиста попросила перепровести программно этот документ. Найдите ошибки в коде. Naive-джун написал (а) код: Вариант1 об = ссылкаРТУ.ПолучитьОбъект(); об.ОбменДанными.Загрузка = Истина; //Чтобы быстрее было об.Записать(РежимЗаписиДокумента.Проведение); Затем он переписал код на Вариант2 "Так как при нажатии на дискетку в форме проведенный документ всё-равно перепроводится, то можно и так сдлеать " Вариант2: об = ссылкаРТУ.ПолучитьОбъект(); об.ОбменДанными.Загрузка = Истина; //Чтобы быстрее было об.Записать(РежимЗаписиДокумента.Запись); P.S. Просьба отцов не спойлерить и дать возможность Naive тоже немного подумать. Сегодня какая-то скучная пятница... |
|||||||||||||
1
Волшебник
28.07.23
✎
14:56
|
Во-первых, надо убрать строку:
об.ОбменДанными.Загрузка = Истина;
Во-вторых, программно перепроводить конкретный документ не нужно. |
|||||||||||||
2
RomanYS
28.07.23
✎
14:59
|
(0) джуны не придут, пятница останется скучной...
Погода ещё такая, проснуться невозможно |
|||||||||||||
3
Aleksey
28.07.23
✎
15:06
|
А чего не так? В некой самописной конфе оба кода могу быть рабочие
|
|||||||||||||
4
YFedor
28.07.23
✎
15:10
|
Задача странная, как уже сказали в (1) программно перепроводить один конкретный документ не нужно
Это всё фигня, а вот ... |
|||||||||||||
5
RomanYS
28.07.23
✎
15:12
|
(3) первый вариант нерабочий, второй не решает задачу
|
|||||||||||||
6
Aleksey
28.07.23
✎
15:12
|
(5) с чего то он вдруг не рабочий?
|
|||||||||||||
7
Мультук
гуру
28.07.23
✎
15:13
|
(5)
Ну, вот -- а ты говорил "всё зря" :-) |
|||||||||||||
8
Bigbro
28.07.23
✎
15:14
|
режимпроведения.Неоперативный еще добавить?
|
|||||||||||||
9
RomanYS
28.07.23
✎
15:14
|
(6) проведение в режиме загрузки невозможно на уровне платформы. И это логично
|
|||||||||||||
10
Aleksey
28.07.23
✎
15:15
|
(8) зачем? и так 1с рабереьтся
|
|||||||||||||
11
Aleksey
28.07.23
✎
15:15
|
(9) с чего это вдруг?
|
|||||||||||||
12
RomanYS
28.07.23
✎
15:16
|
(7) ну ладно. Однако ценность таких знаний невысока, а ошибка очевидна после её первого выявления.
|
|||||||||||||
13
RomanYS
28.07.23
✎
15:18
|
(11) поробуй.
Почему логично? Загрузка - это условно запись с отключением лишних обработчиков, а проведение это как такой обработчик. |
|||||||||||||
14
Aleksey
28.07.23
✎
15:19
|
(13) режим записи - это всего лишь свойство, платформа его не использует. Ну или мне такое поведение платформы не попадалось
|
|||||||||||||
15
Aleksey
28.07.23
✎
15:19
|
(13) это разруливаеться на уровне кода, а не на уровне платформы
|
|||||||||||||
16
asady
28.07.23
✎
15:20
|
(0) если у вас типовые - то как правило у них перед запись стоит что-то типа Если ОбменДанными.загрузка Тогда Возврат;
https://its.1c.ru/db/v8std/content/773/hdoc а если собственная конфа - то хз что там есть и код джуниора может таки сработать. |
|||||||||||||
17
RomanYS
28.07.23
✎
15:22
|
(14) не понял. Это свойсто, которое приводит к вызову обработчика
(15)(16) вот с проведением не так, платформа просто выдаст ошибку |
|||||||||||||
18
Aleksey
28.07.23
✎
15:23
|
(17) ?? Какого обработчика?
|
|||||||||||||
19
RomanYS
28.07.23
✎
15:24
|
(18) ОбаботкаПроведения
|
|||||||||||||
20
Aleksey
28.07.23
✎
15:26
|
(19) нет не приводит (ну или я не могу понять нить повествования)
А возвращаясь к сабжу, для конфы на БСп такая конструкция вполне работает об.ОбменДанными.Загрузка = Истина; об.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); об.Записать(РежимПроведенияДокумента.Проведение); |
|||||||||||||
21
Галахад
гуру
28.07.23
✎
15:34
|
Мне этот джун, даже импонирует. Прекрасное желание улучшить код. Похвально.
|
|||||||||||||
22
RomanYS
28.07.23
✎
15:36
|
(20) Значит где-то перед записью другой код (возможно БСП) отключает режим загрузки.
Провести в режиме загрузки в любом случае не получится. На чистой базе получишь ошибку: {Обработка.Обработка5.Форма.Форма.Форма(27)}:Док.Записать(РежимЗаписиДокумента.Проведение); [ОшибкаВоВремяВыполненияВстроенногоЯзыка] по причине: Действие не может выполняться в режиме загрузки данных [ОшибкаХранимыхДанных] |
|||||||||||||
23
Быдло замкадное
28.07.23
✎
15:39
|
Вариант 2 не проводит документ. А только записывает. То что он до этого был проведен только интерактивно при дискетке работает
|
|||||||||||||
24
H A D G E H O G s
28.07.23
✎
15:42
|
об.Записать(РежимЗаписиДокумента.ОтменаПроведения);
об.Записать(РежимЗаписиДокумента.Проведение); |
|||||||||||||
25
RomanYS
28.07.23
✎
15:53
|
(24) Это в противовес джуну сделать помедленнее)))?
|
|||||||||||||
26
H A D G E H O G s
28.07.23
✎
16:25
|
(25) Это, чтобы выполнилось ОбработкаУдаленияПроведения()
|
|||||||||||||
27
ass1c
28.07.23
✎
17:07
|
Как говорит нам БСП - нужно было ему написать код как в ОбщегоНазначения.ПровестиДокументы(Документы) Экспорт
Крутой был бы тогда Джун... |
|||||||||||||
28
RomanYS
28.07.23
✎
17:10
|
(26) этого в задании не было)
|
|||||||||||||
29
1CBaseV8
28.07.23
✎
21:41
|
(0) 1. Все что связано с привязанными С/Ф, т.е. РТУ — нужно делать в транзакции с перепроведением его СФ.
2. Если это УТ11/ERP/КА нужно сначала отменить проведение и снова провести, чтобы встали различные ключи аналитики ТМЦ, Взаиморасчетов. объДок - Документ объСФ - его С/Ф Примерно так. бБылиОшибки = Ложь; НачатьТранзакцию(); Если не бБылиОшибки Тогда Попытка объСФ.Записать(РежимЗаписиДокумента.ОтменаПРоведения); Исключение бБылиОшибки = Истина; КонецПопытки; КонецЕсли; Если не бБылиОшибки Тогда Попытка объДок.Записать(РежимЗаписиДокумента.ОтменаПРоведения); Исключение бБылиОшибки = Истина; КонецПопытки; КонецЕсли; Если не бБылиОшибки Тогда Попытка объДок.Записать(РежимЗаписиДокумента.ПРоведения); Исключение бБылиОшибки = Истина; КонецПопытки; КонецЕсли; Если не бБылиОшибки Тогда Попытка объСФ.Записать(РежимЗаписиДокумента.ПРоведения); Исключение бБылиОшибки = Истина; КонецПопытки; КонецЕсли; Если бБылиОшибки ТОгда ОтменитьТранзакцию() Иначе ЗафиксироватьТранзакцию() КонецЕсли; Это всё фигня, а вот ... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |