|
v7: Загрузка из dbf в новый реквизит | ☑ | ||
---|---|---|---|---|
0
slimuz
25.01.19
✎
09:49
|
Создал новый реквизит в счет фактуру. В обработку (написанную ранее не мной) по загрузке dbf вписал поле в список значений всё по аналогии как с другими реквизитами, прописал Док.Реквизит=Шапка.ID, ниже сообщить(Док.Реквизит). При загрузке сообщение выводит значения по каждой строке, а в самом документе реквизит не заполнен. Прошу подсказать в чем может быть дело.
|
|||
1
trdm
25.01.19
✎
09:51
|
Несовпадение типов.
Реквизиту с агрегатрным типом присваевашь простое значение. Не прокатит. Или вид реквизита не определен. |
|||
2
Duke1C
25.01.19
✎
09:52
|
(0) Реквизит так и называется - "Реквизит"?
|
|||
3
slimuz
25.01.19
✎
09:55
|
(1) Тип реквизита: Строка
Тип в dbf: Char |
|||
4
ZDenis
25.01.19
✎
09:57
|
(3) либо где-то очищается, либо Док. не записывается
|
|||
5
Ёпрст
25.01.19
✎
10:00
|
Зачет, кто-то только клюшки осваивает..
|
|||
6
slimuz
25.01.19
✎
10:01
|
(4) Док.Записать(); - есть.
Другие реквизиты этого документа то заполняются |
|||
7
ДенисЧ
25.01.19
✎
10:02
|
В отладчике на строку Док.Реквизит=Шапка.ID точку поставь и посмотри до и после.
|
|||
8
ZDenis
25.01.19
✎
10:03
|
(6) Выложи свой код, гадать можно долго
|
|||
9
slimuz
25.01.19
✎
10:12
|
(7) Присваивается значение "шапки" и до следующей строки в dbf значение остается
|
|||
10
slimuz
25.01.19
✎
10:14
|
(8) Код очень большой, различные проверки контрагентов, номера, валюты, подразделений. Часть кода сейчас постараюсь выложить
|
|||
11
Mikeware
25.01.19
✎
10:22
|
(5) хорошо, что не 6.0
|
|||
12
slimuz
25.01.19
✎
10:28
|
Без всяких проверок.
Шапка.Первая(); Пока Шапка.ВКонце()=0 Цикл Если Записать=0 Тогда НеЗаписано=НеЗаписано+1 ; Протокол.ДобавитьСтроку("Не записано! "+Пояснения) ; Иначе Если ТолькоПротокол=0 Тогда Док.Новый(); Док.ДатаДок=Шапка.DAT_BV ; Док.ДатаДокумента=Шапка.DAT_S ; Док.НомерДокумента=СокрП(Ном); Док.Содержание=СокрП(Шапка.NAZN); Док.Комментарий=СокрП(Шапка.NAZN); Док.Подразделение=Подразделение.ТекущийЭлемент(); Док.Ответственный=СокрП(Шапка.ISPOLN); Док.ИДГК=СокрП(Шапка.ID_GK); Док.НоваяСтрока(); Док.Сумма=Шапка.SUMMA ; Сообщить(Док.Реквизит); Док.Записать(); КонецЕсли; Записано=Записано+1 ; Протокол.ДобавитьСтроку("Записано. "+Пояснения); КонецЕсли; Шапка.Следующая() ; КонецЦикла; |
|||
13
slimuz
25.01.19
✎
10:29
|
Реквизит ИДГК
|
|||
14
ZDenis
25.01.19
✎
10:32
|
(13) Сообщить Док.РеквизитЮ а присваиваешь Док.ИДГК, что-то ты недоговариваешь или?
|
|||
15
trdm
25.01.19
✎
10:32
|
Ну так не:
Сообщить(Док.Реквизит); а Сообщить(Док.ИДГК); Ну и плюс: не просто Док.Записать(); а: Попытка Док.Записать(); Исключение Сообщить(ОписаниеОшибки()+" [20190125-1039] "); КонецПопытки; |
|||
16
slimuz
25.01.19
✎
10:33
|
(14) Это я изменить хотел название реквизита, но выложил с ИДГК случайно)
|
|||
17
slimuz
25.01.19
✎
10:38
|
(15) Дак ошибок нет
|
|||
18
slimuz
25.01.19
✎
10:38
|
Сообщить(Док.ИДГК); - выводит значения, я ж писал
|
|||
19
D_E_S_131
25.01.19
✎
10:41
|
В 7.7 же уже был отладчик, почему бы не посмотреть после какой строки кода этот ИДГК очищается?
|
|||
20
trdm
25.01.19
✎
10:41
|
(17) Лучше не называть Реквизит идентификатором "Реквизит".
Мало ли. Попробуй переименуй. |
|||
21
uno-group
25.01.19
✎
10:42
|
ИДГК случаем не реквизит табличной части?
Тогда новая строка или позиционирование на ней нужно. |
|||
22
Ёпрст
25.01.19
✎
10:48
|
(13) ИДГК - реквизит чего хоть ? шапки ? Табличной части ? Общий реквизит дока ?
|
|||
23
skafandr
25.01.19
✎
10:49
|
(21) плюсую за эту версию
|
|||
24
ZDenis
25.01.19
✎
10:58
|
(21), (23) Он бы не выводился в сообщить. Скорее где-то очищается перед записью.
(18) Поставь Сообщить(Док.ИДГК); прямо перед Док.Записать(); |
|||
25
slimuz
25.01.19
✎
11:11
|
(20) (23) Дак он у меня называется не реквизит, а ИДГК. И в сообщить ИДГК
|
|||
26
slimuz
25.01.19
✎
11:13
|
(24) Ставил, сообщает. (19) Отладчиком смотрел я ж писал, очищается только когда следующая строка dbf идет на запись. Т.е. новое значение подставляется
|
|||
27
Kigo_Kigo
25.01.19
✎
11:14
|
(25) Ну та и давай так как есть, какой сакральный смысл перед выкладкой сюда, какие то реквизиты переименовывать и вводить все сообщество в заблуждение?
|
|||
28
slimuz
25.01.19
✎
11:14
|
(22) Реквизит шапки документа. Разместил на форму
|
|||
29
slimuz
25.01.19
✎
11:16
|
(27) Я уже много раз объяснил. Что вы докопались до Сообщить(Док.Реквизит); ?
|
|||
30
ZDenis
25.01.19
✎
11:18
|
(29) Может он и записывается, а на форму вынесен не он?
|
|||
31
Kigo_Kigo
25.01.19
✎
11:18
|
(29) Я не докапываюсь, пытаясь разобраться в проблеме я еще больше запутался, что да где у вас есть, а оно мне надо?
|
|||
32
Ёпрст
25.01.19
✎
11:19
|
(28) весь код в топку.
Для начала, нужно не Док.Новый делать, а искать по параметрам (ид дока или дата+номер хотя бы), и ежели не найден, только тогда Док.Новый лепить. Иначе. повторно твою поделку лучше не запускать |
|||
33
D_E_S_131
25.01.19
✎
11:39
|
"очищается только когда следующая строка dbf идет на запись" - так у тебя документ-то новый создается. Каким боком он к прошлому имеет отношение?
|
|||
34
uno-group
25.01.19
✎
12:16
|
Вариант 1 он не очищается просто на форме поле маленького размера и не отображает информацию.
Вариант 2 очищается при открытии документа. Вариант 3 очищается при записи проведение. Поиск использования ИДГК в форме и модуле проведения |
|||
35
ДенисЧ
25.01.19
✎
12:28
|
Сразу после Записать() в документе отладчиком реквизит смотрел?
|
|||
36
slimuz
25.01.19
✎
12:38
|
(35) После Док.Записать() значение в рек. заполнено
|
|||
37
ДенисЧ
25.01.19
✎
12:40
|
(36) А тогда откуда взялось, что он не заполняется?
В ПриОткрытии этого документа он есть? |
|||
38
slimuz
25.01.19
✎
12:43
|
(37) Процедуре ПриОткрытии не прописан этот реквизит. Он вообще в модуле документа не прописан.
В открытых документах не заполнено, да и в отчет пустое значение выводит. Если вручную в документе заполнить этот реквизит, то значение остается в документе и в отчете выводится |
|||
39
ДенисЧ
25.01.19
✎
12:48
|
(38) Обогиядумне....
В приОткрытии() у текущего документа реквизит заполнен? Подсказываю: смотреть отладчиком и через сообщить() |
|||
40
uno-group
25.01.19
✎
12:52
|
Глобальной переменной такой случаем нет?
|
|||
41
uno-group
25.01.19
✎
12:54
|
В отладчике включить секундомер запустить обработку, потом открыть документ. выключить секундомер. Искать где обнуляется.
|
|||
42
ZDenis
25.01.19
✎
12:55
|
(38) Практически у тебя на каждый запуск обработки создаются документы. Ты уверен что ты входишь в новые потом?
|
|||
43
slimuz
25.01.19
✎
12:55
|
(39) Оказывается значение не сохраняется при записи или проведении документа, хотя все норм было. Это может быть связано с тем что такое же название реквизита есть в другом документе
|
|||
44
ZDenis
25.01.19
✎
12:57
|
(43) "Это может быть связано с тем что такое же название реквизита есть в другом документе" - ерунда, реквизиты совпадают практически везде
|
|||
45
uno-group
25.01.19
✎
13:01
|
(43) гениально. А реквизит "Контрагент" в каждом документе по разному называется.
|
|||
46
Kigo_Kigo
25.01.19
✎
13:07
|
Сдается мне, что это реквизит формы
|
|||
47
slimuz
25.01.19
✎
13:08
|
(39) Не заполнен
|
|||
48
Pit0n_08
25.01.19
✎
13:08
|
А на форме выведен реквизит или поле ввода?
После проведения обработки посмотри значение реквизита универсальной обработкой DOCPRINT.ERT |
|||
49
slimuz
25.01.19
✎
13:09
|
(46) Реквизит документа (48) Выведен реквизит на форму
|
|||
50
slimuz
25.01.19
✎
13:19
|
(48) Обработкой в отчете значение пустое
|
|||
51
HawkEye
25.01.19
✎
13:34
|
чё тут?! автор переписывает свой код с ошибками и просит найти ошибки в исходном коде? )))
|
|||
52
Kigo_Kigo
25.01.19
✎
13:35
|
(49) Реквизит шапки или табличной части?
|
|||
53
Kigo_Kigo
25.01.19
✎
13:36
|
(51) Тут у нас магия, в отладчике реквизит заполняется, после Записать сохраняется, при повторном открытии или в отчете поле пустое
|
|||
54
slimuz
25.01.19
✎
13:36
|
(52) Шапки шапки очевидно же)
|
|||
55
slimuz
25.01.19
✎
13:37
|
(53) Я б просто так не стал сюда писать
|
|||
56
Дмитрий
25.01.19
✎
13:37
|
Когда в форме заполняешь этот реквизит - он сохраняется?
|
|||
57
slimuz
25.01.19
✎
13:37
|
(53) (56) Нет, он не сохраняется. Выше писал
|
|||
58
Ёпрст
25.01.19
✎
13:37
|
(49) Открой в пофигураторе форму и нажми Ctrl+E.
у тебя на форме - реквизит формы, а не документа. |
|||
59
Ёпрст
25.01.19
✎
13:38
|
(57) ясен пень. Реквизит формы нигде не сохраняется, он "живёт" только пока форма открыта.
|
|||
60
Дмитрий
25.01.19
✎
13:39
|
в дереве конфигуратора в шапке документа есть ИДГК?
|
|||
61
slimuz
25.01.19
✎
13:40
|
(58) (60) Да в шапке реквизит ИДГК.
Нажимаю вставить реквизит и вставляю. |
|||
62
Kigo_Kigo
25.01.19
✎
13:40
|
(59) Так и программно он тогда не доступен, автор его заполняет из обработки без передачи контекста или я ошибаюсь?
|
|||
63
ZDenis
25.01.19
✎
13:41
|
(61) Щелкни по реквизиту в конфигураторе. Поле "Идентификатор" доступно для редактирования?
|
|||
64
ZDenis
25.01.19
✎
13:41
|
+ 63 на форме имею ввиду
|
|||
65
slimuz
25.01.19
✎
13:42
|
(64) Недоступен
|
|||
66
Дмитрий
25.01.19
✎
13:43
|
(61) Вставляешь таким же способом, как при нажатии на Ctrl+E ?
|
|||
67
Ёпрст
25.01.19
✎
13:44
|
(65) если это всё-же реквизит шапки у тебя, то
ты просто смотришь не те документы, не за тот период. И, судя по коду обработки твоей - это так и есть. |
|||
68
uno-group
25.01.19
✎
13:44
|
Какие ВК юзаются? Выдели "ИДГК" запомни в буфер обмена и перезапиши везде из буфера может где-то английская "К" затесалась.
|
|||
69
slimuz
25.01.19
✎
13:45
|
(45) У меня в документах рублевый платежный документ и счета фактуры два реквизита с название ИДГК. Когда реквизит по разному назывался значение реквизита сохранялось
|
|||
70
slimuz
25.01.19
✎
13:45
|
(66) Да
|
|||
71
uno-group
25.01.19
✎
13:46
|
добавь в код обработки после записать() ОткрытьФормуМодально(Док.ТекущийДокумент()) и проверь заполнение реквизита.
|
|||
72
uno-group
25.01.19
✎
13:47
|
И скопируй сюда код обработки без всяких редактрирований
|
|||
73
Ёпрст
25.01.19
✎
13:47
|
(71) "не могу, начальника, слишком много документов создаётся"
:)) |
|||
74
uno-group
25.01.19
✎
13:50
|
База ДБФ - СКЛ? переиндексировать не пребывал?
Вставить счетчик и открыть для 1 создаваемого. или прервать после 1. смысл плодить милион кривых документов. после отладки убрать. |
|||
75
slimuz
25.01.19
✎
13:50
|
(71) не заполняется
|
|||
76
Kigo_Kigo
25.01.19
✎
13:51
|
Типы реквизитов в конфе и в дбф?
|
|||
77
ZDenis
25.01.19
✎
13:52
|
(75) Может у тебя присутствует НачатьТранзакцию() без ее завершения?
И да, у тебя там куча документов уже должна быть, есть увененность в том что это новый? |
|||
78
uno-group
25.01.19
✎
13:53
|
Вангую - Ёпрст тригер повесил в СКЛ и средствами скл, его очищает, 1с-ники могут месяц искать где он в 1с-ном коде очищается и ничего не найдут.;)
|
|||
79
Дмитрий
25.01.19
✎
13:54
|
(77) так он говорит, что даже если руками впишет, то после сохранения пропадает значение
|
|||
80
slimuz
25.01.19
✎
13:58
|
(74) ДБФ. Это же копия базы. (74) (77) (78) Конечно я удаляю все созданные документы и конечно я не жду пока все доки не загрузятся
|
|||
81
slimuz
25.01.19
✎
13:59
|
Всем спасибо, не тратьте свое время приколисты
|
|||
82
uno-group
25.01.19
✎
14:00
|
Размер файла и количество записей в нем для конкретного документа. Повторить в монопольном режиме
|
|||
83
Ёпрст
25.01.19
✎
14:00
|
давай уже мд и свою поделку сюда.
|
|||
84
Pit0n_08
25.01.19
✎
14:07
|
(81) Много раз убеждался, что чудес не бывает, а х--ня всякая случается...
|
|||
85
HawkEye
25.01.19
✎
14:19
|
(81) ну так начни с того, что покажи исходный код...
и напиши структуру документа с типами значений, без этого - это ветка для флуда.... |
|||
86
Калиостро
25.01.19
✎
14:33
|
+(40) Или переменная ИДГК, объявленная в начале модуля формы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |