|
Изменение реквизитов справочников при проведении документа 1с 8.2 | ☑ | ||
---|---|---|---|---|
0
men-ken
04.02.15
✎
12:28
|
Добрый день!
Нужно, чтобы при проведении документа менялись реквизиты в элементах справочника, кот. указаны в табличной части документа. Делаю так: Процедура ОбработкаПроведения(Отказ, Режим) Для Каждого ТекСтрокаКонтрагенты Из Контрагенты Цикл Контрагент = ТекСтрокаКонтрагенты.Контрагент.ПолучитьОбъект(); Контрагент.ОсновнойМенеджер = ЭтотОбъект.ОсновнойМенеджер; Контрагент.Записать(); КонецЦикла; КонецПроцедуры При проведении вот что он мне пишет: Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {Документ.ИФЮ_НазначениеОтветственных.МодульОбъекта(26)}: Поле объекта недоступно для записи (ОсновнойМенеджер) Контрагент.ОсновнойМенеджер = ЭтотОбъект.ОсновнойМенеджер; Непонятно почему поле ОсновнойМенеджер недоступно для записи? |
|||
1
Господин ПЖ
04.02.15
✎
12:29
|
>Нужно, чтобы при проведении документа менялись реквизиты в элементах справочника, кот. указаны в табличной части документа
за такие штуки принято ипашить по рукам... |
|||
2
Naumov
04.02.15
✎
12:29
|
у тебя конфа, тебе виднее
|
|||
3
men-ken
04.02.15
✎
12:32
|
(1) объясните что не так?
|
|||
4
barrgand
04.02.15
✎
12:36
|
(3) В таких случаях необходимо пользоваться доп. свойствами объектов, которые будут хранится в отдельном регистре.
|
|||
5
zalexey
04.02.15
✎
12:43
|
Потому что у тебя Контрагент - это реквизит документа с типом ссылка.
Об остальном тебе уже выше написали ) |
|||
6
ktvladimir
04.02.15
✎
12:46
|
(1) я видел такие штуки в типовых решениях ) начнем с них?
навскидку... Управление инженерными данными |
|||
7
men-ken
04.02.15
✎
12:48
|
В конфигурации уже есть регистр, в котором отражаются изменения реквизитов Справочника Контрагенты. Я так понимаю, что если программно изменить реквизиты, то старые будут храниться в регистре.
(6) ЭтотОбъект.ОсновнойМенеджер - это же тоже ссылка |
|||
8
Naumov
04.02.15
✎
12:48
|
(6) За некоторые приемы из типовых выгоняют с экзамена, как за недопустимое. Но ничего, живут типовые своей жизнью.
|
|||
9
Naumov
04.02.15
✎
12:49
|
(7) А ты код не на клиенте случаем выполняешь?
|
|||
10
ktvladimir
04.02.15
✎
12:50
|
(7) тебе говорят о том что у документа наверняка есть реквизит "Контрагент"
то что ты потом объявляешь ТекСтрокаКонтрагенты.Контрагент.ПолучитьОбъект(); не говорит о том что он станет объектом |
|||
11
Naumov
04.02.15
✎
12:50
|
или это не УФ?
|
|||
12
ktvladimir
04.02.15
✎
12:50
|
и ты меняешь менеджера не у объекта а у ссылки
|
|||
13
hhhh
04.02.15
✎
12:52
|
(7) так пробуй
ОфигенныйКонтрагент = ТекСтрокаКонтрагенты.Контрагент.ПолучитьОбъект(); ОфигенныйКонтрагент.ОсновнойМенеджер = ЭтотОбъект.ОсновнойМенеджер; ОфигенныйКонтрагент.Записать(); |
|||
14
Господин ПЖ
04.02.15
✎
12:53
|
>я видел такие штуки в типовых решениях ) начнем с них?
я и запрос в цикле видел |
|||
15
2083
04.02.15
✎
13:00
|
(1) ну зачем по рукам-то сразу? когда в РАУЗ движения пишутся, создаются же ключи аналитики в справочниках
|
|||
16
ktvladimir
04.02.15
✎
13:02
|
(14) ну это смотря какая задача) иногда бывает что это оправдано)
|
|||
17
2083
04.02.15
✎
13:05
|
(16) например?
|
|||
18
barrgand
04.02.15
✎
13:05
|
(15) Если где-то при проведении документа изменяется пачка других объектов, это не значит, что надо использовать это постоянно. Тем более, что есть более правильный способ хранить информацию.
|
|||
19
Naumov
04.02.15
✎
13:20
|
(15) Создаются только отсутствующие элементы, но не изменяются. Согласись немного не такая задача.
|
|||
20
yukon
04.02.15
✎
13:21
|
(15) Ключевое слово "создаются", не обновляются как в (0), а создаются, причем всего 1 раз.
|
|||
21
yukon
04.02.15
✎
13:21
|
(19) Опередил :)
|
|||
22
Defender aka LINN
04.02.15
✎
13:22
|
(0) А при отмене проведения что происходит?
|
|||
23
Огурцы
04.02.15
✎
13:23
|
(0)не делай так, добавь новый РС "МенеджерыКлиентов" и пиши туда при проведении.
|
|||
24
Огурцы
04.02.15
✎
13:24
|
мало ли сколько гвно-кодеров типовые пишут, ты же не такой , правда?
|
|||
25
yukon
04.02.15
✎
13:26
|
(23) Что в лоб, что по лбу. Опять же вопрос, что делать при отмене проведения.
Есть вариант с периодическим регистром сведений с периодом по позиции регистратора. |
|||
26
Огурцы
04.02.15
✎
13:28
|
(25)при отмене проведения, запись удалится сама. Какой Смысл в записи если отменили проведение документу по сути отменили само действие?
|
|||
27
Огурцы
04.02.15
✎
13:29
|
(25)можно и периодический
|
|||
28
Крошка Ру
04.02.15
✎
13:37
|
(0) Отладчиком воспользуйся.
|
|||
29
ktvladimir
04.02.15
✎
13:39
|
(17) когда в параметры нужно загонять данные обработанные на предыдущем этапе
|
|||
30
Defender aka LINN
04.02.15
✎
14:15
|
(26) С автора же станется независимый регистр захреначить
|
|||
31
FIXXXL
04.02.15
✎
14:23
|
точно Контрагент.ОсновнойМенеджер
а не ОсновнойМенеджерПокупателя ? |
|||
32
ksupalo
04.02.15
✎
14:27
|
(0) В 1С Документооборот в справочнике "Проектные задачи" вначале так и было - даты начала и окончания задачи (план и факт) были в проектной задаче. При изменении задач, график пересчитывался, реквизиты элементов справочника менялись массово со всеми вытекающими.
С версии 1.3.х сделали регистр сведений, в которых хранят даты проектных задач - все стало хорошо - меняются записи регистра, а проектные задачи как были так и есть. График пересчитывается быстрее. Красота! Мораль: не надо менять реквизиты справочника, если ты не в форме справочника. |
|||
33
FIXXXL
04.02.15
✎
15:20
|
(32) если это поле имеет такой же смысл как в УТ10,3, то ничего криминального в (0) нет. Ибо поле это перезаписывать может много кто и без контроля.
Наоборот, будет видно кто манагеров тусует, если заблочить кнопку "Установить основным" на форме элемента справочника :) Если же нужна "история" ведения клиента манагерами - тогда несомненно РС. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |