Последние сообщения

#62
7.7 / Re: КОПИЛКА: здесь всякие редк...
Последний ответ от Злоп - 05 марта 2026, 00:02
ФЛАГ СОХРАНЕНИЯ НАСТРОЙКИ для предопределенной ПриОткрытии()
Не отражено в СП/документации.
.
Можно использовать
Процедура ПриОткрытии(ФлагНастройки)
.
При таком определении доступен ФлагНастройки, показывающий что форма открывается с восстановлением настройки (=1), или без восстановления настройки (=0). Такой флаг открытия формы следует использовать для правильной отработки действий/инициализации данных. В СП не описан, в типовой ТиС используется.
#63
Дружественные проекты / Re: Класс-обертка для объекта ...
Последний ответ от trad - 04 марта 2026, 21:32
Цитата: alyuev от 04 марта 2026, 21:07Если не объявлять в классе метод ВывестиСекцию(), то Таблица выведется корректно. Без ошибок.
Получается то, о чем я говорил про контекст, делается не при создании, а при каждом вызове метода
#64
Дружественные проекты / Re: Класс-обертка для объекта ...
Последний ответ от alyuev - 04 марта 2026, 21:07
Да, спасибо. Понятно.
Но, что интересно. Если не объявлять в классе метод ВывестиСекцию(), то Таблица выведется корректно. Без ошибок.
Объявил метод Показать() - он перехватился без проблем.
Функция Показать(Заголовок="",ИмяФайла="",Активизировать=1) Экспорт //+Al 2018-04-02 11:31:06 Переопределение стандартного метода для Таблицы

    //Не будет перехватывать прикрепленные к форме таблицы
      Сообщить("Класс ПерехватТаблицы Заголовок="+Заголовок+" ИмяФайла="+ИмяФайла+"  Активизировать="+Активизировать);
    ОбъектТабл.Show(Заголовок,ИмяФайла,Активизировать);//Здесь используется только Англ имя метода, чтобы класс не зациклился, перехватив самого себя!!!
КонецФункции

#65
Дружественные проекты / Re: Класс-обертка для объекта ...
Последний ответ от trad - 04 марта 2026, 20:46
Можно конечно придумать коп Таблица2, а у него метод, в который передавать Таблицу созданную в модуле, но это уже будет совсем не то что нужно тебе
#66
Дружественные проекты / Re: Класс-обертка для объекта ...
Последний ответ от trad - 04 марта 2026, 20:43
Думаю что ничего не поможет
Я представляю это так:
Когда Таблица создается непосредственно в модуле, то платформа связывает объект с контекстом окружение (Запрос, кстати, так же)
Когда таблица завернута в КОП, то ее, как базовый класс, создает 1спп в некоем врЕменном или пустом контексте
Было бы хорошо если бы контекст как-то "пробрасывался", но этого не сделано, как я понимаю
Вроде бы внутри КОПа можно получить контекст окружения, но присунуть его к создаваемому базовому - никак

ps
За давность лет могу чего-то не помнить и ошибаться)
#67
Размышлизмы / Re: Личное: Антон Азанов aka D...
Последний ответ от alyuev - 04 марта 2026, 19:42
Мда... И ссылка, откуда скачивал обновления по SQLite - https://cloud.mail.ru/public/9znr/ZJ6ULE9aR - перестала работать.
#68
Всем привет.

Захотел было сделать класс наследник объекта Таблица.

Определяю класс как

класс Таблица=ПерехватТаблицы.ert : Table {}

Т.е. по сути все методы, где вызывается СоздатьОбъект("Таблица") - должны будут обработаться этим новым классом.


Перем ОбъектТабл Экспорт;

Функция Сам(Конт) Возврат Конт; КонецФункции

Функция ВывестиСекцию(ИмяСекции) Экспорт //+Al 2026-03-03 11:31:06 Переопределение стандартного метода для Таблицы
    //Не будет перехватывать прикрепленные к форме таблицы
     ОбъектТабл.PutSection(ИмяСекции);//Здесь используется только Англ имя метода, чтобы класс не зациклился, перехватив самого себя!!!

КонецФункции


Процедура Конструктор()
	ОбъектТабл = Сам(Контекст).ПолучитьБазовыйКласс("Таблица");//Если написать "Table", то программа объект не увидит!!!
КонецПроцедуры

Сделал тест - начал ругаться в методе ВывестиСекцию: 

Класс: Таблица - ошибка синтаксиса
//Строка №1    Тхт<<?>>
//Variable is not defined (Тхт)

В секции прописана переменная Тхт и вызов вывода секции не увидел эту переменную.
Кто-то знает, что может помочь в этом случае?
#69
7.7 / Re: Кеширование запроса SQLite...
Последний ответ от Ветер в поле - 04 марта 2026, 11:26
Я в таких случаях использую решение от Вирт - V7DBNet 2.5. Вот описание технологии:

Клиентская часть разработки перехватывает обращения к файлам DBF и CDX и
передает запросы на сервер, сервер возвращает результат в виде кэш-страниц.  Далее
клиент работает с такой страницей без обращения к серверу, пока сервер не сообщит о
потере  ее актуальности.
Для обеспечения надежности (начиная с версии 2.0.0.1) каждый сеанс работает с
сервером   через   изолированную   транзакцию,   что   помимо   стабильности   обеспечивает
полную параллельность доступа  по чтению, даже если в данный момент происходит
запись в таблицы.
Запись происходит также в отдельной изолированной транзакции, но поочередно.
Клиент подает запрос серверу на запись, сервер добавляет его в очередь ожидания, если
кто-то уже пишет данные, или сразу дает разрешение. Сервер регулирует очередность
записи, разделяя время между претендентами, сводя к минимуму «Ошибку блокировки
транзакции».   Также,   для   исключения   неудачного   захвата   транзакции,   в   клиенте,
стандартный   вопрос   1С   о   невозможности   захвата   транзакции   заменен   на   вопрос   с
автоповтором попытки через 3 секунды.
Когда  клиенту  разрешена   запись,   он отправляет  на  сервер  модифицированные
данные. Если клиент сообщает, что он завершает запись успешно, и других измененных
данных не будет, сервер отражает измененные  данные в файлах и фиксирует совою
транзакцию. В случае неудачного завершения транзакции, она просто удаляется, ни каких
изменений не происходит.
Сервер поддерживает три типа транзакций: оптимистический, пессимистический и
режим прямого доступа. Начиная с версии 1.0.0.2. клиент может выбрать тип транзакции
необходимый ему в текущий момент.


Я использовал это решение в нескольких местах в течении многих лет и каких-то проблем не фиксировал. Скорость, конечно, меньше чем у RDP, но работать вполне комфортно, примерно на уровне SQL. Я использовал кэш в районе 100 МБ, поэтому большинство часто используемых справочников кэшировались.
Автор в последней версии разрешил бесплатное использование. Могу расшарить инсталляшку.
#70
7.7 / Re: Кеширование запроса SQLite...
Последний ответ от MWW_Ruza - 04 марта 2026, 09:21
Цитата: MWW_Ruza от 04 марта 2026, 08:41Или как-то запихнуть его в отдельный поток, что-бы он отрабатывал "незаметно" и не тормозил загрузку?

Через обработку ожидания например? Но, тут, как я понимаю, все равно, когда обработка ожидания сработает, 1Ска "задумается" до завершения запроса... В фон таким образом ее не получится запрятать...