|
|
|
Программно изменить субконто у записанных проводок ??? Ø |
☑ | ||
|---|---|---|---|---|
|
0
Xela
08.02.06
✎
11:30
|
Задача такая: нужно программно найти все проводки, где фигурирует некий контрагент и заменить его на другого контрагента. Вопрос в проводках, введенных вручную. То есть документ для этих проводок Операция. Нахожу нужную проводку в некоей Операции. Если пытаюсь сделать что-то типа
Опер.Дебет.Субконто("Контрагены", НовыйКонтр); то получаю "Нельзя изменять записанные проводки!" Подскажите, пожалуйста, нужно ли в этом случае удалять проводку и создавать ее заново или есть какой-то другой способ. |
|||
|
1
ГеройАсфальта
08.02.06
✎
11:40
|
Опер_ = СоздатьОбъект("Операция");
Если Опер_.НайтиОперацию(Опер) = 1 Тогда Опер_.ВыбратьПроводки(); Пока Опер_.ПолучитьПроводку() = 1 Цикл Дебет.Субконто("Контрагены", НовыйКонтр); КонецЦикла; Опер_.Записать(); КонецЕсли; |
|||
|
2
GAnS
08.02.06
✎
11:52
|
есть классная обработка SetAttr.ert из UNIPROCS... по фильтру заменяет любые значения...
|
|||
|
4
Xela
08.02.06
✎
11:59
|
Сообщение насчет ошибки, это ответ Герою асфальта. А обработка - это хорошо, но хотелось бы разобраться с редактированием проводок
|
|||
|
5
Дурочка 1С
08.02.06
✎
12:03
|
Универсальная обработка замены значений. Есть на любом диске ИТС ...
|
|||
|
6
GAnS
08.02.06
✎
12:05
|
(4) дело в том шо там тотже принцып как выложил Герой Асфальта,
гИзмОбъект.Дебет.Субконто(ВидСубк, ТабРеквизиты.Значение); |
|||
|
7
Xela
08.02.06
✎
12:23
|
Вопрос не про обработки. Попробую сформулировать еще раз:
При выполнении команды Опер.Дебет.Субконто("Контрагены", НовыйКонтр); (в любой из указанных выше вариаций) 1с выдает в окно сообщений ошибку "Нельзя изменять записанные проводки!" Что нужно сделать, чтобы ошибка не выдавалась, а команда выполнялась??? |
|||
|
8
Дурочка 1С ®
08.02.06
✎
12:37
|
Нетиповая конфигурация?
>> При выполнении команды Забей на свое казарменное прошлое ... |
|||
|
9
GAnS
08.02.06
✎
12:39
|
(7) Хела,у меня таже фигня была когда нада было субконто НалогОтчисл. в ОС счете поменять, нифига не получалось,а вот SetAttr все установило,я в ней кивирялся гдеж прикол:не нашел:( времени нет... такчто дебагером её поюзай;) и будит тебе счастье!
|
|||
|
10
Xela
08.02.06
✎
12:51
|
(8) Да, нетиповая
(9) Спасибо, GAnS. Была надежда, что кто-нибудь уже расковырял. |
|||
|
11
ГеройАсфальта
08.02.06
✎
13:18
|
(3) Дай свой код
|
|||
|
12
RuslanD
08.02.06
✎
13:48
|
Все должно работать. У тебя неверный тип параметра.
<НомерСубконто> - числовое выражение - порядковый номер субконто. По умолчанию 1. <ВидСубконто> - значение типа ''ВидСубконто'', которое должно быть установлено. |
|||
|
13
NS
08.02.06
✎
13:52
|
(10) Код в студию. У всех работает. И есно типовая/нет не имеет значение.
в (1) одна ошибка - Опер.Дебет.Контрагены = НовыйКонтр; |
|||
|
14
Xela
09.02.06
✎
11:25
|
Спасибо всем огромное! Все заработало. Дело было, вероятно, в фильтре. Сначала было вот так: Заполнялся некий список нужными значениями и:
Опер = СоздатьОбъект("Операция"); Опер.ИспользоватьСубконто(ВидыСубконто.Контрагенты, МСписок); Опер.ВыбратьОперацииСПроводками('01.01.2005', '01.01.2006'); Пока Опер.ПолучитьОперацию()=1 Цикл И т.д. В этом случае ошибка и выдавалось на команде Опер.Дебет.Субконто(НомерСубконто, НовыйКонтр);(пробовала и по номеру и по виду субконто). Если выборку операций делать просто Опер.ВыбратьОперации()или обращаться к операции Опер.НайтиОперацию(), как в (1), то все работает. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |