|   |   | 
| 
 | 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) Или переменная ИДГК, объявленная в начале модуля формы.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |