Мои комментарии

Заголовок Comment Дата публикации Дата обновления
А что на счет пожеланий 3 и…

А что на счет пожеланий 3 и 4? Кнопки-то работают, а тут "сокрытие информации" :)

3 - сделано, будет в январском обновлении.
4 - изучил вопрос, там гораздо сложнее сделать, чем с переменным размером номера документа.
Хотелось бы и с номером документа и т.п. в локальной версии разобраться, а то сейчас тупо обрезается...
Надо менять формат SHP. Планируется в будущем большом обновлении 8.9)

Основная проблема в том, что…

Основная проблема в том, что у кнопки Windows применяется принцип "все или ничего".
Либо используется все стандартное, либо ВСЕ рисуем сами во всех случаях. И поведение также отличается, например hot tracking надо руками реализовывать.

В принципе все это решается, но могут быть нюансы.

Для прозрачности в качестве изображений надо использовать иконки (*.ico).
А размер кнопки зависит от символьной сетки бланка, которая зависит от размера основного шрифта бланка.

Странное поведение…

Странное поведение воспроизводится только в режиме интерпретатора и только, когда первое сравнение над значениями логического типа.

Если, например, на числа поменять, то эффект пропадает:
кс=1; ксп=1;
...
кс=1; ксп=2;
...

Буду изучать код, разбираться.
Спасибо за подробную информацию.

Но, пока других решений нет,…

Но, пока других решений нет, попробую через СПИСОК_АТРИБУТОВ("$",С), где каждая строка из 2-х частей: <название графы>разделитель<значение>   

Так можно выкрутиться благодаря функции ИМЯ_ГРАФЫ.

Общая переменная.
Недостаток…

Общая переменная.

Недостаток такого подхода, если в бланке несколько таких граф для ввода счетов.
Тогда опять функция завязывается на имя конкретной переменной, а на каждую графу нужна своя общая переменная и своя функция.

Наиболее простым решением мне кажется добавление новой команды "DELAYED_RECALC", чтобы выбор в графе отработал до конца, а только потом происходил пересчет бланка.

Другая альтернатива - это добавить новую опцию для граф и событий "Пересчет бланка", которая будет перекрывать существующие 3 опции (Обновление бланка, ...).

С графой вывода - плохой…

С графой вывода - плохой вариант.
Надо запрещать пересчет при вычислении граф вывода, т.к. иначе аварийного завершения не избежать.

Я попробовал в конец функции ВЫБ_СЧ добавить КОМАНДА_БЛАНКА("RECALC").
Так пересчитывает и ошибки не возникает.
Вроде решает поставленную задачу - функция выбора универсальная, от конкретного бланка не зависит.

Спасибо, посмотрю.

Спасибо, посмотрю.

А хотя бы только текста. Он…

А хотя бы только текста. Он ведь во всех состояниях черный :)

Нет. В недоступном состоянии - серый. А в классической теме еще и вдавленный (etched).

Кроме того, есть еще настройка Windows для использования тем с повышенным контрастом. Стандартная кнопка автоматически это учитывает.

Чем не устраивает вариант с картинкой?

Закрытие, как по ОК,…

Закрытие, как по ОК, необходимо для получения текущего номера записи для последующей передачи в БД_РЕДАКТОР в параметр "номер" и возврата к ней при перезапуске БД_РЕДАКТОР.

Да, это аргумент.
Если не меняется фильтрация или сортировка, то строки останутся на своих местах.

Возможно я мыслю категориями языка «Инфо-Бухгалтер», т.к. чтобы изменить вид окна БД_РЕДАКТОРа, например: спрятать ненужные столбцы, добавить новые, изменить их размер и т.п., мне необходимо перезапустить БД_РЕДАКТОР с получением положения курсора.

Код "пустая строка" строка нужен для обновления на минималках, как при вызове обработчика "фильтр" или "сортировка", когда окно не закрывается, а только обновляется таблица.

Не вижу сценария, когда…

Не вижу сценария, когда после закрытия диалога настройки (по ОК) нужно закрытие основного окна БД_РЕДАКТОР по ОК. Т.е. с осуществлением выбора текущей записи, которой может и не быть (пустая таблица, курсор стоит на "+").

Предлагаю сделать так. Добавить новый обработчик "Й" (Настро[b]Й[/b]ка):
ФУНКЦИЯ ТИП_SQL ТИП_ЛОГИКА: <Имя>(ПЕРЕМ ТИП_СТРОКА: код)

Если обработчик возвращает "НЕТ", то трактуем это как нажатие "Отмена" в диалоге настройки и ничего не делаем. Если обработчик возвращает "ДА", то смотрим значение выходного параметра "код". Если "код" пустая строка, то закрытие окна БД_РЕДАКТОР не требуется, но требуется обновление таблицы (также как в обработчиках фильтра и сортировки).

Если код - не пустая строка, то закрываем БД_РЕДАКТОР по "Отмена" (это всегда возможно) и устанавливаем значение "код" в атрибут "бд_ред_настройка".

Пользовательский "код" после выхода из БД_РЕДАКТОР может анализировать значение атрибута "бд_ред_настройка" и принимать решение о выходе из цикла, продолжении цикла и т.п.

Если давать возможность закрытия БД_РЕДАКТОР по "ОК", то возникает логическое противоречие. Что должен обрабатывать пользовательский код? Выбор записи или код настройки?

Попробуйте руками открыть…

Попробуйте руками открыть этот файл в Excel (на машине клиента).
Если там выходят какие-то окна (например, про активацию), то это может тормозить процесс открытия.

При этом для стандартных…

При этом для стандартных пунктов не срабатывает Visible и Text.

Я под стандартными понимаю пункты меню платформы. Например, Документы-Заполнение.
Это меню формируется один раз при старте платформы и потом не меняется, все строки для него берутся из ресурсов dll.

С обновлением ibmenu.ini  посмотрю.

Контекстные меню не обновляются при открытых окнах, если программа обновления запускается через панель инструментов.

Изменение контекстного меню происходит при получении и утрате фокуса ввода.
Если фокус ввода не уходит с таблицы (как в случае с кнопкой на панели управления), то меню обновится после смены фокуса (вызывать какой-нибудь диалог, переключиться между окнами и т.п.)

Здравствуйте!
1. При…

Здравствуйте!

1. При указание в функции БД_РЕДАКТОР в параметре кол_строк значения &gt;15 на мониторах с небольшим разрешением taskbar перекрывает кнопки БД_РЕДАКТОРа. Не учитывается размер видимого экрана с taskbar. Можно автоматически убирать его, но пользователи очень не любят этот режим. См. рис. БД_РЕДАКТОР.

Действительно в одном месте брался размер всего рабочего стола, а не т.н. рабочей области.
Это поправил.

2. Функция ОБНОВИТЬ_МЕНЮ не действует на стандартные пункты меню и контекстное меню плана счетов. Программно заменить их название или выключить невозможно. Только через перезагрузку. Хотя все остальные, включая контекстные обрабатываются.

Стандартные пункты меню создаются один раз при старте программы.
Как Вы их текст планировали менять? На ходу подсунуть другую dll с ресурсами?
Перезапуск ИБ можно сделать через КОМАНДА_ГЛАВНОМУ_ОКНУ("_RESTART_").

Про контекстное меню плана счетов - не представляю, чем оно отличается от всех прочих.
В коде просто цикл по всем типам контекстных меню и меню плана счетов в том числе.

6. Добавить цвет в кнопки, т.к. это элемент управления и хорошо бы выделять его в тексте.

Начиная с Windows XP кнопки не являются одноцветными. Кроме того, у них много состояний, которые отображаются изменением цвета (normal, focused, hot tracked, disabled...). Т.е. даже если делать одноцветное изображение как в Windows 2000, то потребуется задание 8 цветов для фона и текста разных состояний. Как-то перебор, на мой взгляд.

Недавно была реализована возможность отображения на кнопке картинок совместно с текстом или без текста. Может использовать картинки для заметности кнопок? Тогда рамка кнопки будет вести себя как положено, в соответствии с активной визуальной темой Windows.

9. В режиме интерпретатора в библиотеках не всегда срабатывает ИСПОЛЬЗОВАТЬ_БИБЛ (по крайней мере в 8.880, в 8.8106 еще не тестировал). Пришлось вернуться к ИСПОЛЬЗОВАТЬ в каждой функции.

Можете привести пример кода, где ИСПОЛЬЗОВАТЬ_БИБЛ работает не так, как ожидается?

Функция ОБНОВИТЬ_МЕНЮ не действует на контекстное меню плана счетов.

Не воспроизводится.
Все сразу же обновляется, даже если окно плана счетов открыто и его не закрывать.

И какая сейчас версия…

И какая сейчас версия установлена?
10.291.6 от 9 августа 2024 года?
Посмотреть можно в меню Справка-О программе.

На скриншоте в строке состояния видна версия, которая на сайте последняя выложена от 2020 года.
К ней самый новый хотфикс от 26 ноября 2024 года.

Вопрос в том, что и как Вы обновляли?

С 21 ноября больше горячих…

С 21 ноября 2024 года больше горячих обновлений не было.
Вы же писали, что 26 ноября после восстановления шаблонов из корзины экспорт заработал.

Что изменилось после 26 ноября?
Что-то переустанавливали?
Только на одном рабочем месте не работает экспорт?

Здравствуйте!
Опять…

Здравствуйте!

Опять повторяется то, что в этой теме было:
https://www.ib.ru/forums/topics/13300?

Проверьте наличие файлов шаблонов экспорта.
Может их опять удалили.

Можно будет добавить…

Можно будет добавить отдельную кнопку Настройка/Вид, чтобы перезапуск основного окна БД_РЕДАКТОР происходила автоматически.

Еще один вопрос по…

Еще один вопрос по обработчикам БД_РЕДАКТОРа: можно ли из обработчика, например Ф или С, закончить редактирование, как по кнопкам "ОК" и "Отмена"?

Непонятно, зачем такое может понадобиться.
Это же обработчики фильтрации и сортировки отображаемого набора записей, т.е. изменение параметров отображения.

Здравствуйте!
Множественное…

Здравствуйте!

Множественное выделение в моем понятии - это провести курсором по нескольким записям при нажатой левой кнопке мыши (лкм) или в любом порядке выделять Ctrl+лкм.

В БД_РЕДАКТОР поддерживается только второй вариант - в любом порядке с инверсией выбора.
Существует специальный режим, который переключается и отображается в пункте контекстного меню "Режим выделения". Когда он включен, то левый клик или нажатие Enter приводят не к редактированию записи, а к переключению (toggle) состояния ее выбора. Также становятся доступными команды "Выделить все" и "Сброс выделения".

Несколько лет назад делал демо пример для наших прикладных разработчиков.
Краткая его суть такова.

Создается демо таблица фруктов: название + цена.
Делаем из нее SELECT в том виде, в каком хотим дать выбор пользователю.
Сохраняет результат SELECT во временную таблицу.
Добавляем во временную таблицу служебное поле - маркер выделения.
В примере я добавляю поле "selected", которое содержит "V" для выбранных записей и пустую строку для остальных.

Вызываем БД_РЕДАКТОР для временной таблицы, указывая поле "selected" первым (чтобы галочки были в начале строки).
После закрытия (не)активность режима выбора доступна через АТРИБУТ("посл_ред_при_выборе"), ее можно запомнить где-нибудь (в конфигур. файле, своем атрибуте и т.п.), у меня в демо - просто в общей переменной.

Получаем выбранные записи через SELECT к временной таблице WHERE selected="V".

Обработчик ПереключениеПоляВыбора отвечает за смену состояния выделенности одиночной записи (при клике или Enter).
Обработчик МножУстПоляВыбора отвечает за "Выделить все" и "Сброс выделения" (логический параметр "уст": ДА - все, НЕТ - сброс). Реализуется через тривиальный UPDATE временной таблицы.

Исходные файлы SRC и IBL прилагаю.

Без шаблонов выводиться в…

Без шаблонов выводиться в Word ничего не будет.
В корне папки Doc должны лежать файлы *.dot (для Word) и *.xlt (для Excel) различных документов.
Скопируйте содержимое папки Doc с другого рабочего места.

Возможно, что антивирус эти файлы в карантин отправил.
Или пользователь случайно удалил...