Групповое изменение реквизитов с помощью произвольного алгоритма

1. nikavilk 02.10.17 09:31 Сейчас в теме
Добрый день!

Подскажите пожалуйста с вопросом написания произвольного алгоритма:
Есть проблема с изменением реквизита
Надо Отобратьконкретные документы (есть определенные условия отбора) ПоступлениеТоваровУслуг, и в договоре контрагента этого поступления, установить конкретное значение "Вид расчетов"
С отбором проблем нет, а вот написать алгоритм
как установить конкретное значение реквизита ВидВзаиморасчетов (СправочникСсылка.ВидыВзаиморасчетов) являющийся в свою очередь реквизитом ДоговорКонтрагента в документе ПоступлениеТоваровУслуг?

алгоритм
// Доступные переменные:
// Объект - обрабатываемый объект
КодВида = "00-000001";
ВидВзаиморасчетов = Справочники.ВидыВзаиморасчетов.НайтиПоКоду(КодВида);
Объект.ДоговорКонтрагента.ВидВзаиморасчетов = ВидВзаиморасчетов .Записать();





после выполнения обработки выводиться ошибка:
Поле объекта недоступно для записи (ВидВзаиморасчетов)
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
5. Jen1978 19 02.10.17 09:48 Сейчас в теме
КодВида = "00-000001"; 
ВидВзаиморасчетов = СправочникСсылка.ВидыВзаиморасчетов.НайтиПоКоду(КодВида); 
ОбъектДоговор = Объект.ДоговорКонтрагента.ПолучитьОбъект();
ОбъектДоговор.ВидВзаиморасчетов  = ВидВзаиморасчетов;
ОбъектДоговор.Записать();
23. Prikum 3 02.10.17 12:22 Сейчас в теме
(22)Вот вся цепочка
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ВикторП 345 02.10.17 09:32 Сейчас в теме
Надо объект получить у вида взаиморасчетов
3. Jen1978 19 02.10.17 09:44 Сейчас в теме
вы подбираете документ поступление, а реквизит пытаетесь менять у договора.
6. nikavilk 02.10.17 09:49 Сейчас в теме
(3) да, так нужно, поэтому и нужен произвольный алгоритм
не могу взять сразу справочник договора, так как нужен отбор конкретных поступлений (там где используется конкретный счет списания) , и только в них через договор указанный в поступлении установить реквизит договора.
4. Jen1978 19 02.10.17 09:45 Сейчас в теме
Либо как в ответе №2 надо получать объект договора, либо подобрать договоры, и уже их менять
5. Jen1978 19 02.10.17 09:48 Сейчас в теме
КодВида = "00-000001"; 
ВидВзаиморасчетов = СправочникСсылка.ВидыВзаиморасчетов.НайтиПоКоду(КодВида); 
ОбъектДоговор = Объект.ДоговорКонтрагента.ПолучитьОбъект();
ОбъектДоговор.ВидВзаиморасчетов  = ВидВзаиморасчетов;
ОбъектДоговор.Записать();
7. Prikum 3 02.10.17 09:56 Сейчас в теме
(5)+ надо еще ввести объект в режим загрузка, чтобы не было проверки на изменяемые реквизиты.
8. nikavilk 02.10.17 10:02 Сейчас в теме
(5) в таком варианте

выдает сообщение
{(4,21)}: Переменная не определена (СправочникСсылка)
9. Prikum 3 02.10.17 10:13 Сейчас в теме
(8)надо просто Справочники, СправочникСсылка это в запросе указывают.
10. nikavilk 02.10.17 10:27 Сейчас в теме
(9) да я в принципе сначала "Справочники" ставила, потом решила СправочникСсылку

Но увы и здесь выдает сообщение
Элемент не выбран!
11. Prikum 3 02.10.17 10:28 Сейчас в теме
(10)а с таким кодом точно есть элемент?
12. nikavilk 02.10.17 10:31 Сейчас в теме
(11) есть такой код
Прикрепленные файлы:
13. Prikum 3 02.10.17 10:36 Сейчас в теме
(12)а по наименованию не ищет?
14. nikavilk 02.10.17 10:43 Сейчас в теме
(13) заменила поиск
КодВида = "Проба";
ВидВзаиморасчетов = Справочники.ВидыВзаиморасчетов.НайтиПоНаименованию(КодВида);
ОбъектДоговор = Объект.ДоговорКонтрагента.ПолучитьОбъект();
ОбъектДоговор.ВидВзаиморасчетов = ВидВзаиморасчетов;
ОбъектДоговор.Записать();


тоже сообщение
Элемент не выбран!
15. Prikum 3 02.10.17 10:48 Сейчас в теме
(14)не знаю, надо смотреть на самой базе, так подсказать не могу, должен возвращать ссылку.
16. nikavilk 02.10.17 10:51 Сейчас в теме
(15) там все типовое, можно на любой базе проверять
скорее всего что-то ещё нужно
17. Prikum 3 02.10.17 10:53 Сейчас в теме
(16)счас попробую на своей базе.
19. Prikum 3 02.10.17 11:43 Сейчас в теме
(16)вот такой код работает:
Прикрепленные файлы:
20. nikavilk 02.10.17 11:57 Сейчас в теме
(19) Этот вариант не подходит, вы выбрали Для изменения справочник "Договора"
и изменили все договора, а мне надо изменять только в тех договорах которые участвуют в документах поступление при условии что в табличной части Документа выбран счет затрат 20.01 с определенной статьёй затрат"- это условие отбора
С отбором таких доков проблем нет, задача - так сказать "забраться внутрь" реквизита документа -"ДоговорКонтрагента" и установить в нём конкретное значение "ВидыВзаиморасчетов "


поэтому надо идти через обработку документа "Поступление (акт, накладная) а не через справочник "Договора"
21. Prikum 3 02.10.17 12:01 Сейчас в теме
(20)ёлки палки, я должен был все сделать за Вас? Это просто пример, что все находит!
22. nikavilk 02.10.17 12:04 Сейчас в теме
(21)
находит

Ох не поняла, попробую применить ваш пример
23. Prikum 3 02.10.17 12:22 Сейчас в теме
(22)Вот вся цепочка
Прикрепленные файлы:
26. nikavilk 02.10.17 12:29 Сейчас в теме
(23)
Да спасибо, я поняла что ссылку надо добавить
только с результатом не поспоришь

-Элемент не выбран!

это работает только с одним документом
27. Prikum 3 02.10.17 12:30 Сейчас в теме
(26)неправда, я специально проверил на 2-х документах, все нормально отрабатывается.
28. nikavilk 02.10.17 12:34 Сейчас в теме
(27) я поставила в коде алгоритма
все равно ругается на "Элемент не выбран"
может все дело в отборе?
как вы доки отбирали?
29. spacecraft 02.10.17 12:38 Сейчас в теме
(28) давайте скрины настроек и ошибки
31. nikavilk 02.10.17 12:46 Сейчас в теме
(29)
Прикрепленные файлы:
24. nikavilk 02.10.17 12:24 Сейчас в теме
(21)
(19) Обнаружила, что и старый алгоритм работает
только если в отборе 1 документ, а если документов несколько то выдается ошибка
Элемент не выбран!
25. Prikum 3 02.10.17 12:26 Сейчас в теме
(24)Внизу поставили, что объект записывается в коде алгоритма?
32. nikavilk 02.10.17 12:54 Сейчас в теме
(25)
Скорее всего дело в отборе
у меня одним из условий отбора стоит дата больше или равно 01.01.2017
думаю тут надо конкретно указывать период с по

попробовала отобрать по ссылке в списке , как вы и говорили всё работает
33. nikavilk 02.10.17 12:59 Сейчас в теме
(25) Спасибо большое

Косяк был в отборе по дате
нужно было указать интервал

и все заработало
18. spacecraft 02.10.17 11:30 Сейчас в теме
(14)
Элемент не выбран!

Скорее всего это относится не к представленному коду. Есть еще код?
30. spacecraft 02.10.17 12:41 Сейчас в теме
может проще будет внешнюю обработку сделать?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот