|
помогите с обработкой | ☑ | ||
---|---|---|---|---|
0
Kassidy_nd
31.03.14
✎
22:45
|
Создал обработку
с реквизитами дата1, дата2. Процедура КнопкаВыполнитьНажатие(Кнопка) запрос = новый запрос; запрос.Текст= "ВЫБРАТЬ | ПлатежноеПоручениеИсходящее.Ссылка КАК ссылка, | ПлатежноеПоручениеИсходящее.СчетУчетаРасчетовСКонтрагентомБУ КАК СчетУчета, | ПлатежноеПоручениеИсходящее.СубконтоДтБУ1 КАК Субконто1, | ПлатежноеПоручениеИсходящее.СубконтоДтБУ2 КАК Субконто2, | ПлатежноеПоручениеИсходящее.СубконтоДтБУ3 КАК Субконто3, | ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка.ВидНалога |ИЗ | Документ.ПлатежноеПоручениеИсходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеИсходящееРасшифровкаПлатежа | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее | ПО ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка = ПлатежноеПоручениеИсходящее.Ссылка |ГДЕ | ПлатежноеПоручениеИсходящее.Дата МЕЖДУ &Дата1 И &Дата2 | И ПлатежноеПоручениеИсходящее.СчетУчетаРасчетовСКонтрагентомБУ = &СчетУчета"; запрос.УстановитьПараметр("Дата1",дата1); запрос.УстановитьПараметр("Дата2",дата2); запрос.УстановитьПараметр("Счетучета",ПланыСчетов.Типовой.нужныйсчет); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл //надо заменить в документе субконто1,2,3 КонецЦикла; КонецПроцедуры во всех документах из результата запроса нужно установить субконто1,2,3 |
|||
1
Kassidy_nd
31.03.14
✎
22:51
|
я что то не так делаю?
|
|||
2
shuhard
31.03.14
✎
22:52
|
(0) [Документ.ПлатежноеПоручениеИсходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеИсходящееРасшифровкаПлатежа
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее | ПО ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка = ПлатежноеПоручениеИсходящее.Ссылка] бред |
|||
3
Kassidy_nd
31.03.14
✎
22:54
|
(2) а так?
запрос = новый запрос; запрос.Текст= "ВЫБРАТЬ | ПлатежноеПоручениеИсходящее.Ссылка КАК ссылка, | ПлатежноеПоручениеИсходящее.СчетУчетаРасчетовСКонтрагентомБУ КАК СчетУчета, | ПлатежноеПоручениеИсходящее.СубконтоДтБУ1 КАК Субконто1, | ПлатежноеПоручениеИсходящее.СубконтоДтБУ2 КАК Субконто2, | ПлатежноеПоручениеИсходящее.СубконтоДтБУ3 КАК Субконто3 |ИЗ | Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее |ГДЕ | ПлатежноеПоручениеИсходящее.Дата МЕЖДУ &Дата1 И &Дата2 | И ПлатежноеПоручениеИсходящее.СчетУчетаРасчетовСКонтрагентомБУ = &СчетУчета"; запрос.УстановитьПараметр("Дата1",дата1); запрос.УстановитьПараметр("Дата2",дата2); запрос.УстановитьПараметр("Счетучета",ПланыСчетов.Типовой.ОбязательстваПоПенсионнымОтчислениям); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл //надо программно установить субконто1,2,3 КонецЦикла; |
|||
4
Kassidy_nd
31.03.14
✎
22:55
|
как ссылку превратить в объект?
|
|||
5
NcSteel
31.03.14
✎
22:55
|
Уже лучше.
Но в результат запроса сами поля СчетУчета, Субконто 1,2,3 можно не вывводить, так как тебе надо в объекте менять, а там они уже есть. |
|||
6
NcSteel
31.03.14
✎
22:55
|
(4) ПолучитьОбъект()
|
|||
7
wertyu
31.03.14
✎
22:56
|
(0) а почему не в модуле дока?
|
|||
8
Kassidy_nd
31.03.14
✎
22:59
|
(7) потому что я мало знаю =)
|
|||
9
Kassidy_nd
31.03.14
✎
23:04
|
я так понимаю не в модуле дока, а обработки? а как из модуля формы можно вызвать процедуру из модуля объекта?
|
|||
10
NcSteel
31.03.14
✎
23:05
|
(9) Забей, судя по задаче достаточно и из модуля формы обработки.
|
|||
11
Kassidy_nd
31.03.14
✎
23:06
|
(6) можно пример на моем запросе? а то я в СП читаю а там пример но у меня так не идет Объект = ВыбДокумент.ПолучитьОбъект();
|
|||
12
Kassidy_nd
31.03.14
✎
23:07
|
(5) Учел, стало :
Процедура КнопкаВыполнитьНажатие(Кнопка) запрос = новый запрос; запрос.Текст= "ВЫБРАТЬ | ПлатежноеПоручениеИсходящее.Ссылка КАК ссылка |ИЗ | Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее |ГДЕ | ПлатежноеПоручениеИсходящее.Дата МЕЖДУ &Дата1 И &Дата2 | И ПлатежноеПоручениеИсходящее.СчетУчетаРасчетовСКонтрагентомБУ = &СчетУчета"; запрос.УстановитьПараметр("Дата1",дата1); запрос.УстановитьПараметр("Дата2",дата2); запрос.УстановитьПараметр("Счетучета",ПланыСчетов.Типовой.ОбязательстваПоПенсионнымОтчислениям); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл //объект = ВыбДокумент.ПолучитьОбъект(); КонецЦикла; КонецПроцедуры |
|||
13
NcSteel
31.03.14
✎
23:08
|
объект = Выборка.Ссылка.ПолучитьОбъект();
|
|||
14
Kassidy_nd
31.03.14
✎
23:23
|
(13) спасибо. счас. пробую.
|
|||
15
Kassidy_nd
31.03.14
✎
23:31
|
(13) как то так:
Процедура КнопкаВыполнитьНажатие(Кнопка) запрос = новый запрос; запрос.Текст= "ВЫБРАТЬ | ПлатежноеПоручениеИсходящее.Ссылка КАК ссылка |ИЗ | Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее |ГДЕ | ПлатежноеПоручениеИсходящее.Дата МЕЖДУ &Дата1 И &Дата2 | И ПлатежноеПоручениеИсходящее.СчетУчетаРасчетовСКонтрагентомБУ = &СчетУчета"; запрос.УстановитьПараметр("Дата1",дата1); запрос.УстановитьПараметр("Дата2",дата2); запрос.УстановитьПараметр("Счетучета",ПланыСчетов.Типовой.ОбязательстваПоПенсионнымОтчислениям); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл объект = Выборка.Ссылка.ПолучитьОбъект(); Если объект.РасшифровкаПлатежа.ВидНалога = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000098 ") тогда объект.СубконтоДтБУ1 = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000098 "); иначеесли объект.РасшифровкаПлатежа.ВидНалога = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000097 ") тогда объект.СубконтоДтБУ1 = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000097 "); иначе сообщить("опаньки?"); КонецЕсли; объект.СубконтоДтБУ2 = Перечисления.ВидыПлатежейВБюджетИФонды.Налог; объект.субконтоДтБУ3 = справочники.ФизическиеЛица.НайтиПоНаименованию("По всем работникам"); КонецЦикла; КонецПроцедуры а как теперь записать документ? |
|||
16
Tarlich
31.03.14
✎
23:34
|
а встроенная групповая обработка справочников\документов разве не умеет?
|
|||
17
Tarlich
31.03.14
✎
23:38
|
объект.СубконтоДтБУ1 = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000097 ");
объект(МетодЗаписиДокумента.Записать); иначе сообщить("опаньки?"); |
|||
18
wertyu
31.03.14
✎
23:39
|
Объект.записать()
|
|||
19
Tarlich
31.03.14
✎
23:40
|
Сори утчняю :
объект.СубконтоДтБУ2 = Перечисления.ВидыПлатежейВБюджетИФонды.Налог; объект.субконтоДтБУ3 = справочники.ФизическиеЛица.НайтиПоНаименованию("По всем работникам"); Объект.записать(МетодЗаписиДокумента.Записать); |
|||
20
Tarlich
31.03.14
✎
23:41
|
Это все можно сделать встроенной обработкой в любую тип конфу
|
|||
21
Kassidy_nd
31.03.14
✎
23:44
|
(20) пробовал, но групповая обработка справочников\документов не умеет менять субконто, там только провести, пометить, еще что-то, но точно не было изменение субконто... =(
|
|||
22
Tarlich
31.03.14
✎
23:48
|
Умеет !!! в настройках есть - разрешить редактирование реквизитов, да в ПП эти данные находятся не в реквизитах шапки а в ТАБЛИЧНОЙ ЧАСТИ!!!
|
|||
23
Kassidy_nd
31.03.14
✎
23:50
|
ошибка
{Форма.Форма.Форма(22)}: Поле объекта не обнаружено (ВидНалога) иначеесли объект.РасшифровкаПлатежа.ВидНалога = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000097 ") тогда |
|||
24
Kassidy_nd
31.03.14
✎
23:50
|
(23) + а все понял тут я не поправил
|
|||
25
Tarlich
31.03.14
✎
23:56
|
я же написал РасшифровкаПлатежа - это табличная часть . т.е по мимо обхода докуменов надо примерно так :
Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл объект = Выборка.Ссылка.ПолучитьОбъект(); //// .... /// Для каждого стр из объект.РасшифровкаПлатежа Цикл стр.ВидНалога=Справочники.НалогиСборыОтчисления.НайтиПоКоду("000097 "); Конеццикла; Объект.записать(МетодЗаписиДокумента.Записать); КонецЦикла; |
|||
26
Kassidy_nd
01.04.14
✎
00:03
|
(25) РасшифровкаПлатежа - это табличная часть, но в ней нет реквизита "видналога", он в самом документе, получилось вот так. Но мне надо чтобы он провел документы, чтобы проводки по счету изменились на правильные субконто, а он меняет только на документе, а проводки старые...
Процедура КнопкаВыполнитьНажатие(Кнопка) запрос = новый запрос; запрос.Текст= "ВЫБРАТЬ | ПлатежноеПоручениеИсходящее.Ссылка КАК ссылка |ИЗ | Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее |ГДЕ | ПлатежноеПоручениеИсходящее.Дата МЕЖДУ &Дата1 И &Дата2 | И ПлатежноеПоручениеИсходящее.СчетУчетаРасчетовСКонтрагентомБУ = &СчетУчета | И ПлатежноеПоручениеИсходящее.ПометкаУдаления = &ПометкаУдаления"; запрос.УстановитьПараметр("ПометкаУдаления",ложь); запрос.УстановитьПараметр("Дата1",дата1); запрос.УстановитьПараметр("Дата2",дата2); запрос.УстановитьПараметр("Счетучета",ПланыСчетов.Типовой.ОбязательстваПоПенсионнымОтчислениям); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл объект = Выборка.Ссылка.ПолучитьОбъект(); Если объект.ВидНалога = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000098 ") тогда объект.СубконтоДтБУ1 = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000098 "); сообщить("внеконтракт"); иначеесли объект.ВидНалога = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000097 ") тогда объект.СубконтоДтБУ1 = Справочники.НалогиСборыОтчисления.НайтиПоКоду("000097 "); сообщить("контракт"); иначе сообщить("опаньки?"); КонецЕсли; объект.СубконтоДтБУ2 = Перечисления.ВидыПлатежейВБюджетИФонды.Налог; объект.субконтоДтБУ3 = справочники.ФизическиеЛица.НайтиПоНаименованию("По всем работникам"); Объект.записать(); КонецЦикла; КонецПроцедуры |
|||
27
Kassidy_nd
01.04.14
✎
00:05
|
NcSteel, Tarlich, и все все все большое Вам спасибо!
|
|||
28
Tarlich
01.04.14
✎
00:06
|
меняем Объект.записать(); на Объект.записать(РежимЗаписиДокумента.Проведение);
|
|||
29
Kassidy_nd
01.04.14
✎
00:17
|
(28) уже сделал. теперь вопрос если еще здесь сидите: в зависимости от вида операции у реквизита меняется название. Как здесь прописать "ИЛИ" ПлатежноеПоручениеИсходящее.СчетУчетаРасчетовСКонтрагентомБУ = &СчетУчета
ИЛИ ПлатежноеПоручениеИсходящее.СчетУчетаБУ= &СчетУчета. так можно? |
|||
30
Tarlich
01.04.14
✎
00:46
|
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл объект = Выборка.Ссылка.ПолучитьОбъект(); Если объект.СчетУчетаБУ = ТвойСчет тогда Иначе КонецЕсли; Объект.записать(РежимЗаписиДокумента.Проведение); так? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |