|
Не могу программно заполнить документ | ☑ | ||
---|---|---|---|---|
0
Альбатрос
14.09.11
✎
08:12
|
Всем привет! конфа - УТ10.3. Нужно программно заполнить документ "Корректировка долга". С заполнением реквизитов проблемы нет, а вот с таб. частями... Мне нужно провести списание задолженности. Таб. часть в док-те одна: СуммыДолга. Делаю так (для проверки):
Для Каждого стр из рез цикл // Сообщить(""+стр.Орг+" "+стр.Контра+" "+стр.Дк+" "+стр.Сво); Док = Документы.КорректировкаДолга.СоздатьДокумент(); Док.Дата ='20110702235959'; Док.Организация = Стр.Орг; Док.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.СписаниеЗадолженности; Док.КонтрагентДебитор = стр.Контра; новСтрока = Док.СуммыДолга.Добавить(); НовСтрока.ДоговорКонтрагента = стр.ДК; Док.Записать(); Прервать; Возврат; КонецЦикла; Так вот. При открытии документа таб части пустые. Как их заполнить |
|||
1
Dmitriy_76
14.09.11
✎
08:15
|
Док = Документы.КорректировкаДолга.СоздатьДокумент();
Док.Дата ='20110702235959'; Док.Организация = Стр.Орг; Док.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.СписаниеЗадолженности; Док.КонтрагентДебитор = стр.Контра; Для Каждого стр из рез цикл новСтрока = Док.СуммыДолга.Добавить(); НовСтрока.ДоговорКонтрагента = стр.ДК; Док.Записать(); Прервать; Возврат; КонецЦикла; |
|||
2
Dmitriy_76
14.09.11
✎
08:16
|
ошибся
Док = Документы.КорректировкаДолга.СоздатьДокумент(); Док.Дата ='20110702235959'; Док.Организация = Стр.Орг; Док.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.СписаниеЗадолженности; Док.КонтрагентДебитор = стр.Контра; Для Каждого стр из рез цикл новСтрока = Док.СуммыДолга.Добавить(); НовСтрока.ДоговорКонтрагента = стр.ДК; КонецЦикла; Док.Записать(); |
|||
3
Альбатрос
14.09.11
✎
08:20
|
(1)(2) ну так ведьэто тоже самое. Просто заполнение реквизитов и сохранение вынесено из цикла. Что, кстати, не верно, так как по каждой строчке из "рез" должен создаваться отдельный документ.
Почему не работает: новСтрока = Док.СуммыДолга.Добавить(); НовСтрока.ДоговорКонтрагента = стр.ДК; |
|||
4
Kassius
14.09.11
✎
08:24
|
Суммы долга точно ТЧ или все же наборзаписей?
|
|||
5
Альбатрос
14.09.11
✎
08:25
|
(4) Точно ТЧ.
|
|||
6
Kassius
14.09.11
✎
08:40
|
(5) и док записывается пустым, т.е. без строк но с заполненными реквизитами?
Строк точно нет или они пустые? |
|||
7
Альбатрос
14.09.11
✎
08:41
|
Именно так. Строк точно нет.
|
|||
8
lxs
14.09.11
✎
08:45
|
Тебе вот это ни о чем не говорит?
ТабСумм = ЭтотОбъект.СуммыДолга.Выгрузить(); Если ВалютаДокумента = мВалютаРегламентированногоУчета или ВалютаДокумента = Справочники.Валюты.ПустаяСсылка() Тогда ТабСумм.Свернуть("ВидЗадолженности","Сумма"); Иначе ТабСумм.Свернуть("ВидЗадолженности","СуммаВзаиморасчетов"); ТабСумм.Колонки.СуммаВзаиморасчетов.Имя = "Сумма"; КонецЕсли; |
|||
9
lxs
14.09.11
✎
08:46
|
и вот это
// Укажем, что надо проверить: СтруктураОбязательныхПолей = Новый Структура("ДоговорКонтрагента, КурсВзаиморасчетов, КратностьВзаиморасчетов, СчетУчетаРасчетов"); |
|||
10
lxs
14.09.11
✎
08:47
|
Даже на (8) не нужно смотреть.
|
|||
11
Kassius
14.09.11
✎
08:50
|
Процедура ОчиститьСтрокиТабЧасти(ВыбранноеЗначение, ОбъектСравнения, ТекстВопроса, СтандартнаяОбработка)
Если СуммыДолга.Количество() > 0 И СуммыДолга[0].ДоговорКонтрагента[ОбъектСравнения] <> ВыбранноеЗначение Тогда Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да); Если Ответ = КодВозвратаДиалога.Да Тогда СуммыДолга.Очистить(); ВывестиНадписи(); Иначе //Отказ от выбора СтандартнаяОбработка = Ложь; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
12
Kassius
14.09.11
✎
08:54
|
в (11) бред.
Не то скинул ... Суть в том что долга нет в строке. Заполни как в (9) |
|||
13
Альбатрос
14.09.11
✎
09:03
|
(9)(12) Если Вы говорили про то, что у меня были не заполнены все поля,то не взлетело.
|
|||
14
Челмедведосвин
14.09.11
✎
09:03
|
(0) Можешь отладчиком пройти по процедурам ПередЗаписью и ПриЗаписи.
|
|||
15
Челмедведосвин
14.09.11
✎
09:04
|
(14) Посмотри, у тебя договор устанавливается, а потом где-то сбрасывается или вообще не устанавливается.
|
|||
16
Альбатрос
14.09.11
✎
09:11
|
(14) Эти процедуры не описаны в данном документе, и они ведь срабатывают толь при интеравктивном действии.
|
|||
17
Альбатрос
14.09.11
✎
09:14
|
И еще, тут есть таб.поле на форме, которое не задано в описании документа, то есть как элемент формы. Как можно к нему обратиться и заполнить его?
|
|||
18
lxs
14.09.11
✎
09:21
|
(17) не поверишь, так же
|
|||
19
Альбатрос
14.09.11
✎
09:28
|
(18){Форма.Форма.Форма(29)}: Поле объекта не обнаружено (СуммыДолгаУменьшение)
новСтрока = Док.СуммыДолгаУменьшение.Добавить(); Не поверишь, не так же =) |
|||
20
hhhh
14.09.11
✎
09:44
|
(19) там одна ТЧ СуммыДолга, но разбрасывается по разным закладкам в документе. Так как ты офигенно ленивый и кроме договора ничего не указал, то понятно, что эта строчка есть, но ни на одной закладке не видна.
|
|||
21
Челмедведосвин
14.09.11
✎
09:51
|
+(20) У таб. поля есть свойство Данные, там таб. значений, табличная часть... Вот с этим объектом и работай.
(16) Т.е., если в модуле объекта есть процедура ПередЗаписью, она работает только при интерактивной записи? Кстати, еще могут быть подписки на событие по этому документу. |
|||
22
Альбатрос
14.09.11
✎
09:58
|
(20)Неправда. На закладке "уменьшение долга" есть таб.поле "СуммыДолгаУменьшение", где, собссно, и отображается инфа о списании. При этом, если я в уже созданном этой обработой доке меняю вид операции, и ТОГДА отображается записанная мной инфа в таб.части. Так что да, строчка есть. А как ее привязать к виду операции "Списание" и соответст. таб. полю???
|
|||
23
lxs
14.09.11
✎
10:05
|
(22) Олень, посмотри в конфигуратор.. там одна табличная часть
|
|||
24
lxs
14.09.11
✎
10:06
|
Уже начинают парить дятлы, которые учет ни хера не знают, даже в конфигуратор ленятся заглянуть, а еще лезут спорить.
|
|||
25
lxs
14.09.11
✎
10:06
|
Разберись с метаданными и правилами заполнения, потом спорь.
|
|||
26
Альбатрос
14.09.11
✎
10:11
|
(24) А ты не парься, расслабся. Я и не спорил про таб. часть. Я знаю, что она там одна. Но на ФОРМЕ есть ЭЛЕМЕНТ ФОРМЫ таб. поле "СуммыДолгаУменьшение"!!! В ней отображается нужная мне информация по операции "списание"!!! Могу предположить, что данные в нее берутся из таб. части документа, и я что-то не заполнил, раз они туда не попадают. Но, чорт побери, ЧТО ЕЩЕ тут можно заполнить???
Док = Документы.КорректировкаДолга.СоздатьДокумент(); Док.Дата ='20110702235959'; Док.Организация = Стр.Орг; Док.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.СписаниеЗадолженности; Док.КонтрагентДебитор = стр.Контра; Док.ДоговорКонтрагента = Стр.ДК; Док.ВалютаДокумента = стр.ввр; новСтрока = Док.СуммыДолгаУменьшение.Добавить(); НовСтрока.ДоговорКонтрагента = стр.ДК; НовСтрока.Сумма = 4500; НовСтрока.КурсВзаиморасчетов = 1; НовСтрока.КратностьВзаиморасчетов = 1; Док.Записать(); |
|||
27
Альбатрос
14.09.11
✎
10:17
|
то есть: новСтрока = Док.СуммыДолга.Добавить();
|
|||
28
lxs
14.09.11
✎
10:17
|
вид задолженности установи, там отбор устанавливается при открытии.
|
|||
29
lxs
14.09.11
✎
10:18
|
ЭлементыФормы.СуммыДолгаУменьшение.ОтборСтрок.ВидЗадолженности.Использование = Истина;
ЭлементыФормы.СуммыДолгаУменьшение.ОтборСтрок.ВидЗадолженности.Значение = Перечисления.ВидыЗадолженности.Дебиторская; ЭлементыФормы.СуммыДолга.ОтборСтрок.ВидЗадолженности.Использование = Истина; ЭлементыФормы.СуммыДолга.ОтборСтрок.ВидЗадолженности.Значение = Перечисления.ВидыЗадолженности.Кредиторская; |
|||
30
Альбатрос
14.09.11
✎
10:28
|
(29)Да, действительно, спасибо, Уважаемый! И не стоит так нервничать из-за чужой тупости=)
|
|||
31
zahar140382
14.09.11
✎
10:28
|
НовСтрока.ДоговорКонтрагента = стр.ДК;
А в этой чтрочке стр.ДК это что? может нужно НовСтрока.ДоговорКонтрагента = стр.ДК.Ссылка |
|||
32
Альбатрос
14.09.11
✎
10:29
|
(31) Нет,там ссылка. В любом случае, проблема была в (28),(29)
|
|||
33
lxs
14.09.11
✎
10:34
|
(30) Утро у меня сегодня не доброе. Все ок.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |