Ошибка в веб-клиенте: Значение не является значением объектного типа (Записать)

1. pusal 22.10.24 11:14 Сейчас в теме
Добрый день!

Данная ошибка проявляется только в веб-клиенте, т.к. в тонком/толстом клиенте не проявляется.
Значение не является значением объектного типа (Записать)
{Обработка.ПомощникЗаведениПлатежа.Форма.Форма.Форма(522)}: ДанныеИзХранилища.Записать(ИмяПромежуточногоФайла);
{Обработка.ПомощникЗаведениПлатежа.Форма.Форма.Форма(235)}: ОтправитьВОплатуНаСервере();

[ScriptRuntimeError, ScriptUseError]

Выполнение кода запинается в веб-клиенте при записи промежуточного файла...
Повторю - только в веб-клиенте.
Буду благодарен за любые наводки на решение вопроса. Спасибо!

Пока Выборка.Следующий() Цикл
                        
    ДанныеИзХранилища = ПолучитьИзВременногоХранилища(Выборка.Хранение);
    РасширениеФайла = ПолучитьРасширениеИмениФайла(Выборка.Имя);
    ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла(РасширениеФайла);
    ДанныеИзХранилища.Записать(ИмяПромежуточногоФайла);    
                        
    ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
    ПараметрыФайла.Автор = ПараметрыСеанса.ТекущийПользователь.Наименование;
    ПараметрыФайла.ВладелецФайлов = ДокументСсылка;
    ПараметрыФайла.ИмяБезРасширения = Выборка.Имя;
    ПараметрыФайла.РасширениеБезТочки = РасширениеФайла;
    РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, Выборка.Хранение);    
                        
КонецЦикла;


Показать
По теме из базы знаний
Найденные решения
17. SlavaKron 22.10.24 14:20 Сейчас в теме
Всё-таки, обратите внимание на выделенный параметр.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 22.10.24 11:47 Сейчас в теме
А откуда у тебя в веб-клиенте берется адрес временного хранилища в выборке в веб-клиенте?
Повторю - только в веб-клиенте!
3. pusal 22.10.24 11:56 Сейчас в теме
(2) адрес хранится в таблице значений на форме в строке, затем передаётся в выборку для обхода. Подключил отладку для веб-клиента для демонстрации, см. картинку. Но метод "ПолучитьИзВременногоХранилища" возвращает Неопределено
Прикрепленные файлы:
4. user1880116 22.10.24 12:14 Сейчас в теме
(3)
адрес хранится в таблице значений на форме в строк
Код помещения показывай.
7. pusal 22.10.24 13:35 Сейчас в теме
(4)
&НаКлиенте
Процедура ЗаявкаНаОплатуВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    
    Если Поле.Имя = "ЗаявкаНаОплатуФайлыВложения" Тогда
        
        ТекущиеДанные = Элементы.ЗаявкаНаОплату.ТекущиеДанные;
        ДополнительныеПараметры = Новый Структура;
        ДополнительныеПараметры.Вставить("УИДСтроки", ТекущиеДанные.УникальныйИдентификатор);
        
        ПриЗавершении = Новый ОписаниеОповещения("ПоместитьФайлыЗавершение", ЭтотОбъект, ДополнительныеПараметры);
        
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
        ДиалогОткрытияФайла.ПолноеИмяФайла = "";
        ДиалогОткрытияФайла.МножественныйВыбор = Истина;
        ДиалогОткрытияФайла.Заголовок = "Выберите файл(ы) счета / договора";
        
        НачатьПомещениеФайлов(ПриЗавершении, ДиалогОткрытияФайла, Истина,,);
        
    КонецЕсли;    
    
КонецПроцедуры

&НаКлиенте
Процедура ПоместитьФайлыЗавершение(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт
    
    Если ПомещенныеФайлы <> Неопределено Тогда
        Для Каждого Файл Из ПомещенныеФайлы Цикл
            НоваяСтрока = ФайлыСтрокТЧ.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока, Файл);
            НоваяСтрока.УИДСтроки = ДополнительныеПараметры.УИДСтроки;
        КонецЦикла;
    Иначе
        Возврат;    
    КонецЕсли;

    ТекущиеДанные = Элементы.ЗаявкаНаОплату.ТекущиеДанные;
    Количество = ПодсчитатьКоличествоВложений(ДополнительныеПараметры.УИДСтроки);
    ТекущиеДанные.ФайлыВложения = "вложения " + "(" + Количество + ")";    
    
КонецПроцедуры

Показать
Прикрепленные файлы:
5. spacecraft 22.10.24 12:16 Сейчас в теме
(3)
адрес хранится в таблице значений на форме в строке

ага, а выборка запроса. что-то не стыкуется...
8. pusal 22.10.24 13:43 Сейчас в теме
(5) запрос делается к ТЗ на форме, хранящей в себе информацию о помещенных файлах. Мне необходимы не все строки ТЗ, а те, где хранится определенный уникальный идентификатор. Поэтому и запрос.
9. pusal 22.10.24 13:44 Сейчас в теме
(5)
                    ТаблицаВложений = ФайлыСтрокТЧ.Выгрузить();
                    
                    Запрос = Новый Запрос;
                    Запрос.Текст = 
                        "ВЫБРАТЬ
                        |    ТЧ.УИДСтроки КАК УИДСтроки,
                        |    ТЧ.Имя КАК Имя,
                        |    ТЧ.ПолноеИмя КАК ПолноеИмя,
                        |    ТЧ.Хранение КАК Хранение
                        |ПОМЕСТИТЬ ВТТЧ
                        |ИЗ
                        |    &ТЧ КАК ТЧ
                        |ГДЕ
                        |    ТЧ.УИДСтроки = &УИДСтроки
                        |;
                        |
                        |////////////////////////////////////////////////////////////­////////////////////
                        |ВЫБРАТЬ
                        |    ВТТЧ.УИДСтроки КАК УИДСтроки,
                        |    ВТТЧ.Имя КАК Имя,
                        |    ВТТЧ.ПолноеИмя КАК ПолноеИмя,
                        |    ВТТЧ.Хранение КАК Хранение
                        |ИЗ
                        |    ВТТЧ КАК ВТТЧ";
                    
                    Запрос.УстановитьПараметр("УИДСтроки", ВыборкаДоговор.УникальныйИдентификатор);
                    Запрос.УстановитьПараметр("ТЧ", ТаблицаВложений);
                    
                    РезультатЗапроса = Запрос.Выполнить();
                    
                    Выборка = РезультатЗапроса.Выбрать();
                    
                    Пока Выборка.Следующий() Цикл
                        
                        ДанныеИзХранилища = ПолучитьИзВременногоХранилища(Выборка.Хранение);
                        РасширениеФайла = ПолучитьРасширениеИмениФайла(Выборка.Имя);
                        ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла(РасширениеФайла);
                        ДанныеИзХранилища.Записать(ИмяПромежуточногоФайла);    
                        
                        ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
                        ПараметрыФайла.Автор = ПараметрыСеанса.ТекущийПользователь.Наименование;
                        ПараметрыФайла.ВладелецФайлов = ДокументСсылка;
                        ПараметрыФайла.ИмяБезРасширения = Выборка.Имя;
                        ПараметрыФайла.РасширениеБезТочки = РасширениеФайла;
                        РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, Выборка.Хранение);    
                        
                    КонецЦикла;
Показать
10. user2033930 22.10.24 13:49 Сейчас в теме
(9) А что, Найти() уже не прокатывает при работе с ТЗ? Надо обязательно со своим барахлом лезть в СУБД для поиска ОДНОЙ строки???
11. pusal 22.10.24 13:52 Сейчас в теме
(10) даже если и прокатывает, то разве это как-то повлияет на возникшую проблему в веб-клиенте?
12. pusal 22.10.24 13:57 Сейчас в теме
(10) и в каком месте я лезу в СУБД? Источником данных запроса является переданная параметром ТЗ.
13. spacecraft 22.10.24 14:00 Сейчас в теме
(12)
и в каком месте я лезу в СУБД?

а временная таблица где создается?
14. pusal 22.10.24 14:02 Сейчас в теме
(13) в оперативной памяти
15. spacecraft 22.10.24 14:06 Сейчас в теме
(14) далеко не только в оперативной памяти. Но в любом случае это временная таблица сервера sql. И он будет работать с ней, а не 1С.
16. pusal 22.10.24 14:19 Сейчас в теме
(15)
далеко не только в оперативной памяти. Но в любом случае это временная таблица сервера sql. И он будет работать с ней, а не 1С.

благодарю, я изучу эту тему подробнее - не придавал большого значения раньше. Буферный кеш сервера хранит эти ВТ, но не записывает их в БД, поэтому не вижу проблемы, что делаю запрос. Оптимальнее ли будет использовать метод "НайтиСтроки()" - я не знаю, поверю вам на слово, но точно знаю только, что это не решило проблему.
19. spacecraft 22.10.24 14:22 Сейчас в теме
(16) так ответ скорее всего уже был озвучен в 6.
6. SlavaKron 22.10.24 12:20 Сейчас в теме
Вангую, при помещении в хранилище, забыли указать УИД формы.
17. SlavaKron 22.10.24 14:20 Сейчас в теме
Всё-таки, обратите внимание на выделенный параметр.
Прикрепленные файлы:
18. pusal 22.10.24 14:21 Сейчас в теме
(17) спасибо, сейчас попробую!
20. pusal 22.10.24 16:18 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот