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

Заголовок Comment Дата публикации Дата обновления
ИБухгалтер

ИБухгалтер

символы белорусского…

символы белорусского алфавита "і" и "І" (коды 178 и 179) превращаются в "?" при сохранении.

При сохранении в OEM.
Для ИБ 8 я давно делал костыли, чтобы эти буквы при конвертации превращались в английскую "i".
Сейчас все файлы исходников можно хранить в кодировке ANSI.
Для типовых это задается в ini, а для ibl и src в опциях файла (метаданные в xml формате).

См. Рис.1 Win10, разрешение 1920х1080, масштаб 150%. Шрифт Courier New, 10.

С масштаба надо было и начинать.
При некратных 100 масштабах - 125%, 150% и т.п. неизбежны округления в пределах пикселя.
На картинке и в редакторе ИБ 8 наклонные буковки "подрезаны".
Согласен, тут есть что улучшить в редакторе ИБ 10.

Я так понимаю, что концевые пробелы - это наследство редактора ИБ8. Поудаляю их, когда перейду на ИБ10). Но все же почему их не удалять при сохранение? Ведь никакой функциональности в них нет.

Вы, вероятно, системой контроля версий для своих файлов не пользуетесь.
Это адова каша бывает, если какой-то редактор решит удалять молча пробелы или переносы строк.

А все же, как использовать подсветки "Пользовательский"?

Собственно в программе ИБ 10 пользователь может указать свои слова для каждой из 5 категорий.
В ИБ 8:
1 - определения и реквизиты
2 - поля объектов
3 - встр. функции (опционально)
4 и 5 - не используются

1. и которая была последней…

1. Первая и которая была последней каплей - символы белорусского алфавита "і" и "І" (коды 178 и 179) превращаются в "?" при сохранении. В редакторе ИБ 8 это много лет, как устранено. Использую их в комментах, а их у меня 20-25% листинга.

В редакторе ИБ 10 используется юникод, что позволяет вводить любые символы.
Чтобы сохранение в файл происходило без потерь, надо чтобы файл был в кодировке UTF-8.
Но сама программа ИБ 8 не поддерживает юникод для файлов исходных текстов.

2. Отсутствует блочное выделение (Ctrl+Б), как в ИБ 8.

Это не планируется в среднесрочной перспективе.
Как я понимаю, блочное выделение полезно при редактировании визуальной части бланка.
А там всегда используется редактор ИБ8, где блочное выделение есть.

3. В наклонных шрифтах не виден знак "_". Стандартный шрифт Courier New. Например "СТР_ФРАГ" отображается, как "СТР ФРАГ". Похоже из-за междустрочного интервала. В ИБ 10 он меньше.

Не воспроизводится. Все подчеркивания видны для наклонных шрифтов.
Даже в примере подсветки можно убедиться на ключевом слове КОНЕЦ_ЕСЛИ.

4. Подсветка функций, определений, реквизитов и пр. не работает в строковых выражениях, что не позволяет быть уверенным в правильном синтаксисе. А их немало и в ВЫРАЖЕНИЕ(), и запросах через СПИСОК. Возникает больше ошибок и приходиться чаще лазить в хэлп.  В редакторе ИБ 8 это есть.

В редакторе ИБ 8 более тупенькая подсветка. Там просто слово обрабатывается, даже если внутри строкового литерала. Есть специальная категория "Ключевые слова в строках", где сейчас забиты ключевые слова SQL. Туда можно встроенные функции скопировать.

5. Курсор в позиции 1 практически сливается с левой границей окна. В связи с этим постоянно пропадает из виду. В редакторе ИБ 8 между границей и курсором есть отступ и он толще.

У меня не сливается, все прекрасно видно.

6. Концевые пробелы строк, которые в ИБ 8 игнорируются. Двигаешь курсор стрелками вниз/вверх, а он куда-то исчезает из виду вправо. Пришлось написать процедуру их удаления из листингов. А может проще было бы их удалять при сохранении?

Спорная штука.
Например, notepad++ работает с пробелами также, как редактор ИБ10.

1. Подсветка общих переменных и констант. Он как зарезервированные слова. Может для них использовать подсветки "Пользовательский 4,5". А для чего они вообще?

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

P.S. Может для этого всего раздел о программировании открыть? Не всем может быть интересно.

Есть раздел "Программирование" на дилерском форуме:
https://www.ib.ru/forums/221

Есть такая опция Установка…

Есть такая опция Установка-Настройки-Вид-Поведение пользовательского интерфейса-Использовать Enter для перехода к следующему в диалогах. Если ее отключить, то все начинает работать как надо.

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

В старых программах…

В старых программах неправильно версии сравнивались.
Такой эффект будет для всех версий "сотой" серии, начиная с 8.8100.
Не обращайте внимания.

Проверьте, что в ярлыке…

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

В файле gnclient.ini в…

В файле gnclient.ini в рабочих папках программ должен быть указан правильный ip-адрес сервера ключа. Если ip-адреса назначаются динамически, то там можно указать сетевое имя компьютера.

Подробности здесь Ключ Guardant Stealth

Спасибо.
Буду разбираться.

Спасибо.
Буду разбираться.

А что на счет пожеланий 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  посмотрю.

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

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