|
v7: Не могу программно добавить строку в документ НоваяСтрока() = Не выбран документ! | ☑ | ||
---|---|---|---|---|
0
MiracMC
17.03.20
✎
23:51
|
Приветствую Всех.
То ли лижи не едут...... Пытаюсь добавить строку в программно созданный документ. как то так: дВып = СоздатьОбъект("Документ.БанковскаяВыписка"); дВып.Новый(); дВып.РСчет = НДС.ТекущийЭлемент(); дВып.СчетУчета = НДС.СчетУчета; Если дВып.СчетУчета.Выбран() = 0 Тогда дВып.СчетУчета = СчетПоКоду(?(дВып.РСчет.Валюта = Гривня, "31.1", "31.2")); КонецЕсли; дВып.СчетНДС = дВып.РСчет.СпецСчетНДС; ........ дВып.Фирма = НДС.Фирма; дВып.ДатаДок = ДатаДвижения; дВып.Записать(); текВып = докВып.ТекущийДокумент(); ...... Сообщить(текВып.Выбран()); Сообщить(текВып); текВып.ВыбратьСтроки(); Сообщить(текВып.КоличествоСтрок()); Попытка текВып.НоваяСтрока(); Исключение докВып = СоздатьОбъект("Документ"); докВып.ИспользоватьЖурнал("Банк"); Если докВып.ВыбратьДокументы(текВып.ДатаДок,текВып.ДатаДок) = 1 Тогда Если докВып.НайтиДокумент(текВып) = 1 Тогда текВып = докВып.ТекущийДокумент(); текВып.НоваяСтрока(); КонецЕсли; КонецЕсли; КонецПопытки; Все есть... все находит и выводит... но вот текВып.НоваяСтрока(); выпадает с ошибкой текВып.НоваяСтрока(); {ХХХХХХХХХХХХХХХХ}: Не выбран документ! Я все перепродобавл. как видно из блоку документ есть и записан ранее. Сообщалки выводят соотвественно 1 Банк. выписка БВ-0000011 (02.03.20) 0 соответственно.... |
|||
1
mikecool
17.03.20
✎
23:53
|
докВып - а что в нем?
|
|||
2
mikecool
17.03.20
✎
23:56
|
используй найтидокумент или как там в 7, уже не помню
|
|||
3
Builder
17.03.20
✎
23:57
|
Ну йо...
текВып = СоздатьОбъект("Документ") ТекВып.НайтиДокумент(докВып) ТекВып.НоваяСтрока() |
|||
4
MiracMC
18.03.20
✎
00:09
|
(1) ну так там найденный документ этот в итоге
(2) Если докВып.НайтиДокумент(текВып) = 1 Тогда тут и нахожу его (3) Так по сути то это ж и делаю.. просто выше несколько вариантов поиска в чем надо создавать строки. Один путь = как я показал... СоздатьДокумент() + Новый() Второй путь ищет нет ли уже такого документа и если находит = тоже делает текВып = Вып.ТекущийДокумент(); (Вып = СоздатьОбъект(...) - это описано отдельно) Оба метода в ТекВып записывают то что сделали (создали или нашли)... |
|||
5
MiracMC
18.03.20
✎
00:11
|
меня смущает то что я вижу все что есть в документе, даже его пустую ТЧ... и ТекВып.Выбран() = 1
но ошибка говорит текВып.НоваяСтрока(); {хххххххххххх}: Не выбран документ! |
|||
6
Builder
18.03.20
✎
00:24
|
(4) По сути одно, но делаешь не то совсем.
|
|||
7
Builder
18.03.20
✎
00:25
|
(4) У тебя объект докВып, а пытаещься ты изменить уже ссылку на него - ТекВып
|
|||
8
Калиостро
18.03.20
✎
00:30
|
(0) Ошибка здесь:
текВып = докВып.ТекущийДокумент(); текВып.НоваяСтрока(); Вот так должно работать: Док = СоздатьОбъект("Документ." + ДокВып.Вид()); Док.НайтиДокумент(ДокВып.ТекущийДокумент()); Док.НоваяСтрока(); |
|||
9
MiracMC
18.03.20
✎
00:52
|
так я типо понимаю это.. но весь фокус в том что это почти месяц работало... а тут перестало(
|
|||
10
Провинциальный 1сник
18.03.20
✎
05:06
|
.ТекущийДокумент() в семерке - это то же самое, что в восьмерке .Ссылка
Вы можете в ссылке добавлять данные? |
|||
11
Bigbro
18.03.20
✎
05:29
|
какой то странный код.
не могло это работать, в том виде что приведены куски кода по крайней мере. может там что то еще в многоточиях есть или код уже меняли. |
|||
12
Kigo_Kigo
18.03.20
✎
07:57
|
ИМХО
Если докВып.ВыбратьДокументы(текВып.ДатаДок,текВып.ДатаДок) = 1 Тогда Если докВып.НайтиДокумент(текВып) = 1 Тогда //текВып = докВып.ТекущийДокумент(); текВып.НоваяСтрока(); КонецЕсли; попробуй вот так |
|||
13
Kigo_Kigo
18.03.20
✎
07:58
|
+ докВып.НоваяСтрока();
|
|||
14
Kigo_Kigo
18.03.20
✎
07:59
|
у тя как то там все ссылки перемешались
|
|||
15
Bigbro
18.03.20
✎
08:43
|
да и верхнее если ни к селу с выбором документов если мы только что его создали и с этой же датой.
при таком нагромождении кривого кода лучше выбросить его и написать заново. |
|||
16
Kigo_Kigo
18.03.20
✎
08:52
|
(15) Да и вообще нахер вот это все
вот так достаточно дВып = СоздатьОбъект("Документ.БанковскаяВыписка"); дВып.Новый(); дВып.РСчет = НДС.ТекущийЭлемент(); дВып.СчетУчета = НДС.СчетУчета; Если дВып.СчетУчета.Выбран() = 0 Тогда дВып.СчетУчета = СчетПоКоду(?(дВып.РСчет.Валюта = Гривня, "31.1", "31.2")); КонецЕсли; дВып.СчетНДС = дВып.РСчет.СпецСчетНДС; ........ дВып.Фирма = НДС.Фирма; дВып.ДатаДок = ДатаДвижения; Двып.НоваяСтрока(); //******************************** Заполняем колонки ТЧ //**************************** дВып.Записать(); |
|||
17
Bigbro
18.03.20
✎
08:56
|
годится)
|
|||
18
HawkEye
18.03.20
✎
09:13
|
(0) что за привычка, прося найти ошибку в коде не копировать код, а переписывать его с новыми ошибками...
дВып.Записать(); текВып = докВып.ТекущийДокумент(); что тут такое докВып? зачем нужна переменная ТекВып? зачем искать уже имеющийся у тебя объект: докВып.НайтиДокумент(текВып) ???? на кой заворачивать в попытка/исключения НовуюСтроку()? внятно можешь объяснить что должна делать твоя поделка? почему нельзя добавить строку в документ до его записи? |
|||
19
HawkEye
18.03.20
✎
09:15
|
(9) никогда не было и вот опять?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |