|
v7: Работа с операциями | ☑ | ||
---|---|---|---|---|
0
Alucard
30.05.12
✎
10:40
|
Здравствуйте!
Ситуация такая: нужно из операций удалить количество и субконто (по номенклатуре). http://www.mista.ru/tutor_1c/buh_oper.htm - здесь все внимательно прочитано )) Делаю так: Док=СоздатьОбъект("Документ.Операция"); Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); Номенклатура=СоздатьОбъект("Справочник.Номенклатура"); Пока Док.ПолучитьДокумент()=1 Цикл Опер = СоздатьОбъект("Операция"); Опер.НайтиОперацию(Док.ТекущийДокумент()); //Опер.ИспользоватьСубконто(ВидыСубконто.Номенклатура,); Опер.ВыбратьПроводки(); //Опер.ИспользоватьСубконто(ВидыСубконто.Номенклатура,Номенклатура.ТекущийЭлемент()); //Опер.ВыбратьПоЗначению(,,ВидыСубконто.Номенклатура,); Пока Опер.ПолучитьПроводку() = 1 Цикл Попытка КодДебет=Опер.Дебет.Субконто().Код; КодКредит=Опер.Кредит.Субконто().Код; Если Номенклатура.НайтиПоКоду(КодДебет,0)=1 Тогда Сообщить(Опер.Дебет.Субконто().Код+" "+Опер.Дебет.Субконто()+" "+Опер.ТекущийДокумент()); Опер.УстановитьАтрибут("Количество", 0); Опер.УстановитьАтрибут("Дебет.Субконто", ""); КонецЕсли; Если Номенклатура.НайтиПоКоду(КодКредит,0)=1 Тогда Сообщить(Опер.Кредит.Субконто().Код+" "+Опер.Кредит.Субконто()+" "+Опер.ТекущийДокумент()); Опер.УстановитьАтрибут("Количество", 0); Опер.УстановитьАтрибут("Кредит.Субконто", ""); Иначе //Сообщить("Вот она "+Опер.Кредит.Субконто()) КонецЕсли; Исключение КонецПопытки; Опер.Записать(); КонецЦикла; КонецЦикла; Так странно ищу субконто по номенклатуре потому что не получается с фильтром Опер.ИспользоватьСубконто(ВидыСубконто.Номенклатура,) всяко перепробовал. Все это произошло когда не той обработкой из ТиС выгрузили в бухию данные стандартной выгрузкой,должны были только суммы перебросить. Самое главное!!: Как подправить субконто и количество, а именно их удалить (почистить)? Если заходить в операции, то вручную не дает через shift+f4. Подскажите, пож-та! |
|||
1
Ёпрст
30.05.12
✎
10:50
|
>>> КодДебет=Опер.Дебет.Субконто().Код;
>>> КодКредит=Опер.Кредит.Субконто().Код; >>> Если Номенклатура.НайтиПоКоду(КодДебет,0)=1 Тогда Сообщить(Опер.Дебет.Субконто().Код+" "+Опер.Дебет.Субконто()+" "+Опер.ТекущийДокумент()); Ну и изврат |
|||
2
viktor_vv
30.05.12
✎
10:50
|
Так а отладчиком ты хоть заходинь в свои условия ? И почему бы не так проверять
Если Опер.Дебет.Субконто(1).Вид() = "Номенклатура" Тогда |
|||
3
Ёпрст
30.05.12
✎
10:51
|
и всё остальное тоже в топку
|
|||
4
viktor_vv
30.05.12
✎
10:51
|
А еще лучше проверяй счет дебета, кредита.
|
|||
5
1Сергей
30.05.12
✎
10:52
|
нужно всего-лишь проверить тип субконто
|
|||
6
viktor_vv
30.05.12
✎
10:54
|
(0) И ты точно уверен что Номенклатура у тебя это первое субконто ?
|
|||
7
viktor_vv
30.05.12
✎
10:57
|
И устанавливать
Опер.Дебет.Субконто(1,ПолучитьПустоеЗначение("Справочник.Номенклатура")) ; Можно конечно и "", но так понятнее. |
|||
8
Alucard
30.05.12
✎
11:04
|
Я понимаю что изврат, но дело то не в изврате (спасибо за подсказки),
само субконто не правиться, нужно еще по субконто наверное отдельно пробежаться, хотя у меня оно везде первое почти стоит. Самое главное!! не подправляет операцию??? |
|||
9
viktor_vv
30.05.12
✎
11:08
|
Так выкинь ты свои УстановитьАтрибут и устанавливай номрально. Как ты думаешь вот эта строка что делает "Опер.УстановитьАтрибут("Дебет.Субконто", "");" Я так подозреваю что ошибку дает.
|
|||
10
viktor_vv
30.05.12
✎
11:19
|
И еще вставь.
Исключение Сообщить("Где-то я таки лоханулся"); КонецПопытки; |
|||
11
chief accountant
30.05.12
✎
11:32
|
(0) учоис умеет делать сабж
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |