|
v7: Как программно перезаписать ручную операцию? | ☑ | ||
---|---|---|---|---|
0
nameless13
12.10.11
✎
14:17
|
Стоит задача перенести все ручные операции с конца одного месяца на начало другого, программно отбираю все документы типа "Операция" (ручные операции), перезаписываю в них датудока и тоже самое делаю с его операцией (т.к. провести програмно он его не дает).
После этого в документах дата изменилась в операции тоже (перепроверил несколько раз), но когда получаю оборотку на старую дату, то все обороты отражаются по СТАРОЙ дате, по новой в оборотку не попадают, в чем моя ошибка? ручнОпер = СоздатьОбъект("Документ.Операция"); ОперацияДока = СоздатьОбъект("Операция"); Док = СоздатьОбъект("Документ.Операция"); ручнОпер.ВыбратьДокументы(НачДата, НачДата); Пока ручнОпер.ПолучитьДокумент() = 1 Цикл НовыйНомер=Число(НовыйНомер)+1; Док.НайтиДокумент(РучнОпер.ТекущийДокумент()); Док.ДатаДок = НоваяДата; Док.НомерДок = НовыйНомер; Док.Записать(); //Док.Провести(); ОперацияДока.НайтиОперацию(Док); ОперацияДока.ДатаОперации = НоваяДата; ОперацияДока.Записать(); //ОперацияДока.ЗаписатьПроводки(); КонецЦикла; |
|||
1
nameless13
12.10.11
✎
14:20
|
При этом если интерактивно нажать кнопку "Записать" в документе, то в оборотке все сразу красиво отображается, а программно через метод Записать() нет, как так?
|
|||
2
filh
12.10.11
✎
14:28
|
см как в документе ПриЗаписи()
|
|||
3
andrewks
12.10.11
✎
14:31
|
вот это нагородил...
|
|||
4
nameless13
12.10.11
✎
15:17
|
(3) а как правильно подскажи?
|
|||
5
nameless13
12.10.11
✎
15:27
|
(2) посмотрел, но там ничего подозрительного не нашел
|
|||
6
Смотрящий от 1С
12.10.11
✎
15:37
|
Опер = СоздатьОбъект("Операция");
Опер.ВыбратьОперации(ДатаНач, ДатаКон); Пока Опер.ПолучитьОперацию() = 1 Цикл Опер.ДатаОперации = НоваяДата; Опер.Записать(); КонецЦикла; |
|||
7
Смотрящий от 1С
12.10.11
✎
15:38
|
(6) не то что то написал
|
|||
8
SeregaMW
12.10.11
✎
15:50
|
Это делается так:
ДокОперацияСсылка = РучнойДокумент.Ссылка; РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка; РегЗапись = РегХозрасчетный.Добавить(); РегЗапись.Период = Док.Дата; РегЗапись.Регистратор = ДокОперацияСсылка; РегЗапись.Организация = Справочники.Организации.НайтиПоНаименованию("ООО Автодин"); РегЗапись.СчетДт =ПланыСчетов.Хозрасчетный.НайтиПоКоду("10.05"); РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01"); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, 1, товар.Номенклатура); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, 2, Док.Склад); РегЗапись.КоличествоДт = товар.Количество; БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, 1, товар.Номенклатура); БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, 2, Док.Склад); РегЗапись.Сумма = переменная; РегХозрасчетный.Записать(); |
|||
9
SeregaMW
12.10.11
✎
15:51
|
(8) на восьмерке! На 7.7 хз.
|
|||
10
nameless13
12.10.11
✎
15:55
|
(6) но ведь по этому алгоритму отбирутся все операции независимо от типа документа а нужно только ручные операции
|
|||
11
nameless13
12.10.11
✎
15:57
|
(8) с восьмерки переводить на семерку очень трудно и даже невозможно
|
|||
12
nameless13
12.10.11
✎
16:00
|
неужели уже все работают на восьмерках?!?! Гуру по семерке, если таковы ещё не перевелись на земле русской, скажите пожалуйста в чем у меня ошибка (код в первом посте)
|
|||
13
ptiz
12.10.11
✎
16:09
|
убери код с "Док."
и пиши ОперацияДока.НайтиОперацию(РучнОпер.ТекущийДокумент()); ОперацияДока.Документ.ДатаДок = НоваяДата; ОперацияДока.Документ.НомерДок = НовыйНомер; ОперацияДока.ДатаОперации = НоваяДата; ОперацияДока.Записать(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |