Подсистема "Инструменты разработчика" v7.82.2
Разработка - Инструментарий разработчика
Бесплатные
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО
| Наименование | Скачано | Бесплатно |
|---|---|---|
|
Вариант Конфигурация для 1С 8.2.19+, 8.3.4+
.cf 15,21Mb ver:6.67.7
15978
|
15978 | Скачать бесплатно |
|
Вариант Портативный для 1С 8.2.12+, 8.3.4+
.zip 14,35Mb ver:6.67.7p
9751
|
9751 | Скачать бесплатно |
|
Вариант Расширение для 1С 8.3.10.2375+, режим совместимости 8.3.9+
.cfe 15,99Mb ver:7.82.2e
6264
|
6264 | Скачать бесплатно |
|
Подсистема для 1С 8.1.12+ (поддержка прекращена)
.cf 2,33Mb ver:2.04
13659
|
13659 | Скачать бесплатно |
|
Синтакс-помощник 8.1.15.14
.ZIP 13,90Mb
2137
|
2137 | Скачать бесплатно |
|
Установщик варианта Расширение
.epf 42,51Kb ver:20.04.2025
2311
|
2311 | Скачать бесплатно |
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Подсистема победила на конференции Infostart Event Evolution 2013 в номинации "Лучшая разработка"
Поддерживаются клиентские приложения
- 32-битный толстый клиент (1cv8.exe), доступны все функции
- 32-битный тонкий клиент (1cv8c.exe), только для запуска 32-битного толстого клиента
- 64-битный толстый клиент (1cv8.exe), недоступны некоторые малозначимые функции
- 64-битный тонкий клиент (1cv8c.exe), только для запуска 64-битного толстого клиента
Поддерживаются режимы запуска
- толстый клиент обычное приложение
- толстый клиент управляемое приложение, недоступен в портативном варианте
- на стороне сервера доступно использование некоторых программных отладочных функций
Поддерживаются режимы конфигурации
- (для 8.3) "Режим использования синхронных вызовов расширений и внешних компонент" <> "Не использовать"
Запуск в режиме "Обычное приложение"
Конфигурации под управляемое приложение часто вполне работоспособны и в режиме обычного приложения. У таких конфигураций установлен основной режим запуска "Управляемое приложение". Однако вы можете запустить для них обычное приложение любым их вариантов
- указав параметр командной строки /RunModeOrdinaryApplication
- установив пользователю базы свойство "Режим запуска" = "Обычное приложение"
- из конфигуратора в "Сервис/Параметры" указать режим запуска "Управляемое приложение и обычное приложение" и запускать команду "Начало отладки"/"Толстый клиент (обычное приложение)"
- из управляемого приложения выполнив команду подсистемы "Запустить обычное приложение" или формы базовой внешней обработки портативного варианта инструментов
Как разобраться в большом количестве кнопок
В каждой немаленькой командной панели подсистемы, включая главную панель инструментов, первой кнопкой идет кнопка
"Структура командной панели" (продвинутый аналог "Все действия" в управляемой форме). Она позволяет искать по описанию кнопок


Копирование и вставка ссылок
Во всех полях ввода и табличных полях подсистемы доступны команды Копирования (SHIFT+ALT+C) и Вставки (SHIFT+ALT+V) ссылки. Используется собственный формат буфера обмена Windows и поэтому копировать можно в приложении одной базы, а вставку выполнить в приложении другой базы с одноименным типом объектов. Демонстрация
В большинстве полей ввода подсистемы при вставке представлений ссылок документов выполняется поиск подходящего документа по номеру и дате из вставленного представления.
В большинстве полей ввода подсистемы при вставке представлений уникальных идентификаторов (например "<Объект не найден> (2491:bb0d84b6646fdfd3424fd266dd85544a)", "dd85544a-d266-424f-bb0d-84b6646fdfd8") выполняется преобразование уникального идентификатора в ссылку.
Глобальное меню управляемых форм
В непортативных вариантах во всех управляемых формах (не ограничиваясь подсистемой) сочетание клавиш CTRL+ALT+E вызывает глобальное контекстное меню подсистемы. Его состав определяется текущими ячейкой/полем/строкой/таблицей/табличным документом/формой. Подробно познакомиться с ним можно в статье.
Так например выглядит состав этого меню при вызове в таблице динамического списка:

Состав:
- справочник Алгоритмы- здесь можно хранить редактировать и выполнять программный код с параметрами
- алгоритмы можно вызывать через методы
- ирИВА(СсылкаАлгоритма СтруктураПараметров) - именованная передача параметров
- ирПВА(СсылкаАлгоритма П1= П2= П3= ...) - позиционная передача параметров
- для каждого алгоритма при включенной настройке "Выполнять через динамические внешние обработки" генерируется внешняя обработка через которую он выполняется что позволяет выполнять отладку и замер производительности
- алгоритмы можно вызывать через методы
- консоль кода -форма для редактирования и выполнения произвольного кода на встроенном языке с использованием параметров
- к редактору программного кода подключена компонента "Контекстная подсказка"
- в редакторе программного кода кнопка "Вставить ссылку на объект БД"
- код можно выполнять на сервере
- режим выполнения через динамическую внешнюю обработку на клиенте
- кнопка Отладчик открывает динамическую внешнюю обработку в отладчике
- заполнение таблицы параметров через анализа текста
- кнопка для исследования значения текущего параметра
- кнопка для помещения данных в форму выбранного элемента справочника "Алгоритмы"
- для программного вызова служат функции
- Оперировать(Знач ТекстПрограммы= Знач РежимОперации= СтрокаИменПараметров= П1= П2= П3= П4= П5=)
- Оп(П1=П2= П3= П3= П4= П5=)
- ОперироватьСтруктурой(ТекстПрограммы= Модально= СтруктураПараметров) или короткая Опс(СтруктураПараметров)
- интерфейсная панель- форма позволяет быстро находить нужный объект метаданных и открывать любую его форму
- структура дерева метаданных
- на первом уровне находятся типы объектов метаданных а на втором сами объекты
- ветка последних использованных объектов
- ветка часто используемых объектов (накопление статистики)
- ветка избранное с возможностью перетаскивания туда не только строк дерева но и ссылок из динамических списков
- ветка автозапуск позволяет открывать вместе с этой формой формы других объектов
- фильтр по основному представлению объекта
- при использовании разбивается на слова условия по словам соединяются по И («ном вид» найдет «виды номенклатуры» но не найдет «виды заявок»)
- при наборе текста фильтра выполняется быстрая промежуточная фильтрация метаданных
- запоминает последние использованные значения
- переключатель основного представления Имя/Синоним
- фильтр по подсистеме
- позволяет выбрать одну подсистему из дерева подсистем
- запоминает последние использованные значения
- в контекстном меню объекта метаданных можно выбрать
- любую статическую форму объекта метаданных
- добавить объект в избранное
- открыть динамический список
- открыть консоль запросов
- открыть консоль компоновки
- открыть журнал регистрации
- открыть динамический список
- открыть подбор и обработку объектов
- в контекстном меню объекта данных можно выбрать
- добавить объект в избранное
- открыть любую форму объекта
- открыть в редакторе объекта БД
- открыть в исследователе объектов
- открыть консоль компоновки
- открыть журнал регистрации
- открыть динамический список
- при выборе в дереве объекта открывается его основная форма списка или объекта
- основано на //infostart.ru/projects/1472/
- структура дерева метаданных
- менеджер интерфейсов -раскрывает возможности платформы по управлению интерфейсами
- можно подключать и отключать любые доступные переключаемые интерфейсы
- тестирование метаданных - автоматическая проверка метаданных
- Тестирование форм путем их создания открытия и закрытия
- Тестирование прикладных объектов путем их создания копирования записи проведения отмены проведения в отменяемых транзакциях
- Тестирование внешних метаданных из выбранного каталога
- Отображение результатов в виде полного имени операции и чистого описания ошибки при выборе которого выполняется переход к строке модуля в конфигураторе
- настройка журнала регистрации- управление всеми настройками журнала регистрации
- Изменение уровня регистрации событий
- Включение/Выключение регистрации конкретных событий
- Детальная настройка регистрации событий "Доступ" и "Отказ доступа"
- Переход в анализ журнала по выбранному событию
- Переключатель представления событий в виде имя/синоним
- Сохранение/Загрузка конфигурации всех настроек в/из файла
- анализ журнала регистрации -выгрузка с отбором журнала регистрации в табличное поле
- перед выгрузкой выполняется гибкая настройка отбора ориентированная на максимальную скорость получения результата
- опция "Все транзакции с участием выгруженных записей" позволяет многоэтапно получить полные транзакции куда попали выгруженные на первом этапе записи журнала
- в результате выгрузки доступен стандартный отбор
- результат выгрузки можно передать в консоль компоновки для сложного анализа в виде отчета на компоновке данных
- переход к настройке регистрации текущего события
- настройка техножурнала- управление всеми настройками техножурнала платформы
- основано на соответствующей обработке с ИТС далее перечислены только основные доработки
- правильно определяет каталог конфигурационных файлов для версий 8.0-8.3 платформы
- знает о всех свойствах и событиях техножурнала для версий платформы 8.0-8.2.14 платформы
- автоматически добавляет строку для регистрации всех свойств при добавлении нового журнала
- корректная управляемая обработка индивидуальных и общих каталогов настройки приложения 1С
- поддержка работы с настройкой на стороне сервера
- понятное представление сложных условий регистрации событий и свойств
- исправленные стандартные шаблоны настройки журнала (большинство из них были некорректными и фактически не работали)
- комбинация нового упрощенного и обычного режима задания отбора событий позволяют намного быстрее редактировать простые настройки
- простое выключение журнала
- вычисление размера выбранного каталога журнала
- очистка выбранного каталога журнала
- переход к анализу выбранного каталога журнала
- запоминаемые реквизиты "Основной каталог журналов" и "основной каталог дампов" упрощают создание новых настроек и загрузку чужих настроек журнала
- индикатор наличия активной настройки журнала
- анализ техножурнала -загрузка с отбором по дате технологического журнала в табличное поле
- в загруженной таблице доступен стандартный отбор
- автоматическое определение текущего каталога техножурнала для клиента
- загруженную таблицу можно передать в консоль компоновки для сложного анализа в виде отчета на компоновке данных
- поиск ссылок на объект- форма позволяющая получить все объекты ссылающиеся на выбранный объект
- можно использовать в виде команды управляемого приложения
- можно использовать через ввод на основании в обычном приложении для чего сделан виртуальный план обмена ирКмдНайтиСсылки который после включения его ввода на основании нужных объектов предоставляет возможность поиска ссылок через стандартное меню ввода на основании
- кнопка для открытия ссылающегося объекта в редакторе объекта БД
- поддерживается открытие не только ссылающихся ссылочных объектов но и записей независимых регистров сведений
- консоль запросов
- для программного вызова служит функция Отладить(Запрос *Модально) или коротко От(Запрос) для использования в точке останова при этом запрос открывается в консоли с сохранением работоспособности всех параметров и временных таблиц
- поддержка пакетных запросов
- поддержка временных таблиц
- конструктор запроса "понимает" запросы с обращениями к существующим временным таблицам (у всех временных таблиц должны быть псевдонимы)
- дерево запроса (для работы режима дерева запроса требуется регистрация COM-компоненты GoldParser.DLL которая выполяется автоматически при наличии прав администратора ОС)
- в режиме дерева запроса можно редактировать/ смотреть содержимое отдельно каждого узла
- вездесущая контекстная подсказка (если имеются вложенные запросы то для улучшения ее работы лучше включать режим дерева запроса)
- режим сворачивания вложенных запросов в режиме дерева запроса
- замер времени выполнения
- настройка динамического отбора и порядка в режиме компоновки (в режиме построителя поддерживается настройка только отбора и только с 11-го релиза)
- просмотр результирующего запроса
- обработчики перед выполнением строки и самого результата с возможностью отладки в штатном отладчике платформы через выполнение в консоли кода через динамическую внешнюю обработку
- функции для рефакторинга запроса в режиме дерева запроса: "Перенести в новый запрос" и "Преобразовать в подзапрос"
- переход (по F12) к определению таблицы или во вложенный запрос в режиме дерева запроса
- пошаговое выполнение пакетного запроса (по F10)
- автоматический вывод содержимого созданной временной таблицы
- в редакторе текста запроса кнопка "Вставить ссылку на объект БД"
- после большинства операций с текстом запроса параметры извлекаются автоматически
- передача выбранных данных в подбор и обработку объектов а также в поиск и замену дублей
- генераторы текста модуля для обработчиков результата и строки таблицы результата
- кнопка Период добавляет группу параметров для задания интервала времени только при первом нажатии а при повторном открывает диалог редактирования периода
- для коллекции результата предусмотрен режим частичной
загрузки, включаемый автоматически, если выборка превышает 100000
строк, и загружает первые 999 строк. Кнопка "Загрузить" загружает
выборку полностью
- консоль построителей отчетов- форма со списком конфигураций построителя отчета позволяющая их редактировать формировать отчет
- сохранение в файл и загрузка из файла списка конфигураций построителя
- поле результата имеет удобное подменю для именованного сворачивания группировок
- к редактору запроса подключена компонента "Контекстная подсказка"
- для программного вызова служит функция Отладить(ПостроительОтчета *Модально) или короткая От(ПостроительОтчета) для использования в точке останова
- исполняемый запрос можно передавать в консоль запросов
- консоль компоновок данных
- для программного вызова служит функция Отладить(СхемаКомпоновки *Модально *НастройкаКомпоновки *ВнешниеНаборыДанных) или короткая От(СхемаКомпоновки *НастройкаКомпоновки *ВнешниеНаборыДанных) для использования в точке останова
- исполняемые запросы можно передавать в консоль запросов
- в структуре настроек компоновки есть команда "Переставить с родителем" позволяющая быстро поменять местами текущую и родительскую группировки
- наборы данных запросы можно редактировать в консоли запросов
- поле результата имеет удобное подменю для именованного сворачивания группировок
- исполняемые запросы макета компоновки можно передавать в консоль запросов
- позволяет исследовать макет компоновки схему компоновку внешние наборы данных настройки компоновки расшифровку
- конструктор выражения компоновки
- экспериментальная опция "осторожной выборки" включающая выполнение предварительных запросов для определения числа строк результате что позволяет предотвратить нежелательное извлечение из СУБД значительных объемов данных
- консоль заданий- форма для управления регламентными и фоновыми заданиями
- основана на одноименной обработке с ИТС
- показывает полное описание ошибки фонового задания
- добавлен редактор параметров регламентного задания
- добавлена кнопка «Показать сообщения пользователю» для фонового задания
- добавлена кнопка "Работать диспетчером" имеющая смысл в файловой версии и вызывающая в цикле ВыполнитьОбработкуЗадания() с возможностью прерывания
- улучшено управление отбором
- режим получения количества сообщений пользователю в колонку списка фоновых заданий (работает на релизе >=8.2.14)
- вывод сообщений пользователю от фонового задания при выборе ячейки с количеством этих сообщений
- добавлена колонка Длительность (Конец-Начало) и возможность отбора по ней
- улучшена поддержка файлового режима в т.ч. обход ошибки платформы
- добавлено подменю "Выполнить" для регламентного задания
- На клиенте
- На сервере
- В фоновом задании
- В консоли кода
- подбор и обработка объектов - форма для подбора строк из одной таблицы БД и их обработки
- Поддерживаются типы таблиц БД
- ссылочная
- регистр
- последовательность
- табличная часть
- режим многотабличной выборки (можно выбирать данные сразу из нескольких однотипных таблиц)
- Заполнение таблицы "Строки для обработки"
- ручной подбор строк таблицы для обработки
- отбор компоновкой данных
- Таблица "Строки для обработки"
- колонка "Результат обработки" для отображения результата обработки объекта (Успех или)
- колонка "Пометка" для ручного отключения обработки строки
- ключевые колонки выбранной таблицы БД всегда добавляются автоматически
- дополнительные колонки выбранной таблицы БД можно указывать в выбранных полях настройки компоновки
- после обработки данных неключевые колонки перечитываются из базы данных автоматически
- кнопка ручного перечитывания неключевых колонок из базы данных
- кнопка открытия универсального редактора объекта БД позволяет быстро перейти к непосредственному редактированию строки в составе объекта БД
- кнопка снятия пометок с успешно обработанных строк
- Управление обходом выборки данных для не ссылочных таблиц
- "Строки" - обрабатывается каждая помеченная строка табличной части или набора записей
- "Объекты" - обрабатывается каждый объект БД которому принадлежит хотя бы одна помеченная строка
- встроенные обработки с указанием допустимых типов объектов
- перенумерация - Ссылка
- проведение документов - Документ
- установка реквизитов - СсылкаТабличнаяЧастьСтрокаРегистрЗапись
- кнопка "Загрузить из объекта" для загрузки значений реквизитов из выбранного объекта
- в начале выполнения добавляет колонки изменяемых реквизитов в таблицу "Строки для обработки" на основной форме
- удаление - Ссылка
- отмена проведения - Документ
- пометка на удаление - Ссылка
- изменение регистрации на узле - СсылкаРегистрНаборЗаписей
- произвольный алгоритм - СсылкаТабличнаяЧастьСтрокаРегистрНаборЗаписейРегистрЗапись
- подключена компонента "Контекстная подсказка"
- возможность передачи обработки в консоль кода
- автоматическая запись объекта БД если он был модифицирован
- выполнение пакета обработок
- отключаемый контроль записи (ОбменДанными.Загрузка)
- опция пропускать ошибки
- опция перепроведения проведенных документов при записи
- основано на обработке УниверсальныйПодборИОбработкаОбъектов с ИТС
- Поддерживаются типы таблиц БД
- поиск дублей и замена ссылок- поиск дублей в ссылочных таблицах и выборочная замена ссылок во всей базе
- поиск дублей выполняется с настраиваемым отбором
- сопоставление дублей можно выполнять по любому количеству строгих критериев (реквизитов) и одному нестрогому для строкового реквизита (по похожим словам)
- на закладке замена поддерживается открытие не только ссылающихся ссылочных объектов но и записей независимых регистров сведений
- перед замещением в независимых регистрах сведений в случае склеивания записей по новым ключам открывается диалог настройки замещения где отображаются отличия в ресурсах конфликтующих записей и можно выбрать какую именно оставить
- возможность независимого использования функционала замены ссылок без поиска дублей
- выполнение замены только в помеченных объектах
- возможность групповой пометки по попаданию даты документа в интервал и по нескольким типам и видам объектов метаданных
- таблица правил замены ссылок
- возможность выбора ссылок различного типа внутри правила (если новый тип ссылки не допустим то значение не меняется)
- кнопка перестановки ссылок внутри правила
- автоматический подсчет количества ссылающихся и помеченных объектов
- отображение даты документов и типа метаданных в списке ссылающихся объектов
- возможность отбора в списке ссылающихся объектов в т.ч. динамического по текущему правилу
- кнопка для открытия ссылающегося объекта в редакторе объекта БД
- после выполнения замены в случае наличия изменений в проведенных документах предлагается открыть их список с возможностью перепроведения
- выполнение замен с отключенными проверками регистрируется в журнале регистрации (событие - "Запись с флагом Загрузка")
- портативная версия //infostart.ru/projects/1134/ не совместима с подсистемой
- основано на обработке "ПоискИЗаменаДублирующихсяЭлементов" с ИТС
- проверка базы данных перед усечением типов - форма для поиска и исправления препятствий и потенциальных проблем перед реструктуризацией БД c удалением ссылочных (типов) объектов метаданных
- спасает от
- если при усечении типов измерений регистров сведений нарушается уникальность записей то конфигуратор не дает применить конфигурацию к БД с ошибкой "Записи регистра сведений ... стали не уникальными!"
- молчаливого удаления конфигуратором элементов планов видов характеристик вследствие ошибки платформы до 8.2.9 включительно
- при открытии в базе с измененной основной конфигурацией предлагает автоматически заполнить удаляемые типы
- автоматическое заполнение удаляемых типов при свободном конфигураторе анализирует разницу между конфигурацией БД и основной конфигурацией
- будущие неуникальные записи можно групповым образом удалить но можно и править вручную
- из элементов планов видов характеристик удаляются ссылки на удаляемые типы
- портативная версия //infostart.ru/projects/2230/ не совместима с подсистемой
- спасает от
- исследователь объектов- форма представляющая свойства и методы переданного объекта в виде дерева и позволяющая таким образом исследовать любой объект по аналогии с диалогом "Вычислить выражение" отладчика
- колонка "Определение" и пиктограмма показывают происхождение свойства или метода (метаданные - зеленый или платформа - синий)
- можно открывать контекстную справку по любому свойству или методу
- можно интерактивно изменять значения его свойств в пределах поддержки типов механизмом расширенного редактирования ячеек
- кнопка для сериализации значения в XML через XDTO
- кнопка для получения внутреннего представления значения через функцию ЗначениеВСтрокуВнутр()
- для программного вызова служит функция Исследовать(Объект *Модально *КакКоллекцию) или короткая Ис(Объект *КакКоллекцию) для использования в точке останова
- форма-компаньон "Исследователь коллекций" позволяет исследовать любую коллекцию открывается по двойному щелчку в ячейке "Количество элементов" исследователя объектов
- редактор объекта БД -форма позволяющая редактировать любой ссылочный объект БД вместе с движениями по регистрам для документов
- для документа можно прочитать и записать движения в т.ч. для несуществующего ()
- для документа на закладке Движения имеется фильтруемый по количеству записей наименованию и типу список регистров
- отображаются все реквизиты объекта включая общие и нередактируемые
- закладка "Связанные колонки БД" для анализа колонок и строк таблиц БД содержащих ссылку на объект
- закладка "Поиск в объекте" позволяет выполнять поиск произвольного значения в реквизитах табличных частях и движениях объекта
- строковые реквизиты можно редактировать в отдельном окне в подсветкой синтаксиса
- можно выполнять с объектом основные действия
- создание нового
- запись с управлением признаком ОбменДанными.Загрузка
- пометка удаления
- непосредственное удаление
- проведение
- отмена проведения
- отображаемое в форме состояние (снимок) объекта или набора записей движений можно открыть в исследователе объектов
- отображаемое в форме состояние (снимок) объекта можно открыть в основной форме объекта
- таблицу реквизитов табличную часть набор движений объекта можно вывести в табличный документ отредактировать их там и загрузить обратно
- у нового объекта можно редактировать уникальный идентификатор
- основано на //infostart.ru/projects/895/
- редактор констант -форма позволяющая просматривать и редактировать значения констант в табличном виде
- измененные значения констант не пишутся сразу в БД а пишутся кнопкой Записать все вместе
- редактор параметров сеанса -форма позволяющая просматривать и редактировать значения параметров сеанса в табличном виде
- кнопка для исследования параметров сеанса полезна когда есть параметры со значениями не имеющими информативного отображения в элементе управления
- динамический список - форма с табличным полем в котором можно отобразить динамический список любой доступной таблицы БД
- кнопка для открытия редактора объекта БД
- кнопка для открытия менеджера табличного поля
- кнопка для объединения (замены) ссылок
- редактор изменений на узле- форма для анализа и модификации регистрации изменений на выбранном узле плана обмена
- обзор всех изменений в виде дерева типов и связанной таблицы изменений по текущему типу
- добавление и удаление регистрации всех изменений с учетом авторегистрации
- добавление и удаление регистрации всех изменений выбранного типа
- добавление регистрации изменений по одному объекту каждого типа
- вычисление количества изменений сразу для всех типов
- редактирование номеров сообщений
- таблица изменений
- редактирование записей в стиле приближенном к традиционному (добавить скопировать удалить)
- просмотр сериализации текущего объекта
- возможность ввода ссылок на несуществующие объекты
- список пользователей- список пользователей инфобазы
- запуск сеанса под пользователем не зная его пароля
- менеджер табличного поля - форма замены стандартного диалога "Отбор и сортировка"
- подключен к
- Список справочника "Алгоритмы"
- Динамический список
- Редактор объекта БД (для табличных частей и движений)
- Редактор таблицы значений
- Исследователь коллекций
- Поиск ссылок на объект
- Поиск дублей и замену ссылок (для правил замены и найденных ссылок)
- Консоль кода
- предоставляет богатые возможности по настройке горячего отбора и применяемого порядка любого табличного поля
- снимает ограничения по использованию полей в отборе
- закладка "Обработка"
- выполняет групповую установку значения в ячейках колонки табличного поля (табличной части таблицы и дерева значений) доступной для редактирования
- при установке значения в каждую ячейку срабатывают все интерактивные события что обеспечивает высокий уровень соответствия изменений контексту
- новое значение может быть задано выражением встроенного языка вычисляемого с использованием параметров и данных каждой строки
- подключен к
- функции, ориентированные на использование в режиме отладки - вызывать из отладчика (через диалог "Вычислить выражение")
- изменение значения переменной Пр (Перем1 Перем2) - присваивает параметру Перем1 значение параметра Перем2. Например Пр(Построитель.Текст "ВЫбрать * Из Константы")
- доступна на сервере
- основано на http://www.kb.mista.ru/article.php?id=105
- выполнение произвольного кода простое Ду(СтрокаВыражения П1= П2= П3=...) - выполняет код из параметра СтрокаВыражения где могут применяться параметры П1 П2 П3... Например ду("П1.Текст = П2" Построитель "ВЫбрать * Из Константы").
- доступна на сервере
- основано на http://www.kb.mista.ru/article.php?id=105
- выполнение произвольного кода сложное Оперировать(ТекстПрограммы РежимОперации= СтрокаИменПараметров= П1 = П2 = П3= П4= П5=) - выполняет код из параметра ТекстПрограммы где могут применяться параметры П1 П2 П3... с опциональными именами задаваемыми в параметре СтрокаИменПараметров. Например Оперировать("ПостроительЗапроса.Текст = Текст" 2 "ПостроительЗапроса Текст" Постротель "ВЫбрать * Из Константы").
- доступна на сервере
- открытие исследователя объекта или коллекции - Ис(Объект = КакКоллекцию = Ложь) - открывает объект в исследователе объектов или коллекций
- удобно менять свойства объекта во время остановки
- при вызове на сервере выполняется только сохранение копии переданного объекта для отложенной отладки на клиенте командой "Выполнить отложенную отладку" находящейся в панели инструментов подсистемы обычного приложения или в панели действий командного интерфейса подсистемы управляемого приложения
- открытие параметров в консоли кода - Оп(П1= П2= П3= ...) - открывает консоль кода и передает ей все свои параметры
- изменения параметров возвращаются в вызывающий контекст
- открытие фрагмента программы в консоли кода - Поп(ТекстПрограммы=) используется путем копирования в буфер обмена целостного фрагмента программы и вычисления "Вычислить(Поп())"
- позволяет осуществить предварительное многократное выполнение кода с возможностью внесения изменений на ходу
- вычисление структуры из переменных переданного фрагмента программы - Пер(ТекстПрограммы=) используется путем копирования в буфер обмена интересующего фрагмента программы и вычисления "Вычислить(Пер())"
- позволяет вычислить структуру образованную сразу из всех встречающихся во фрагменте программы переменных
- открытие специализированных консолей - От(Объект НастройкаКомпоновки= ВнешниеНаборыДанных=) варианты использования:
- От(Запрос) - открывает запрос в консоли запросов
- От(ПостроительЗапроса) - открывает результирующий запрос построителя запросов в консоли запросов
- От(ПостроительОтчета) - открывает построитель отчета в консоли построителей отчетов откуда можно открыть результирующий запрос построителя отчета в консоли запросов
- От(СхемаКомпоновки НастройкаКомпоновки= ВнешниеНаборыДанных=) - открывает схему компоновки в консоли компоновки данных откуда можно открыть результирующие (из макета компоновки) запросы в консоли запросов
- От(МакетКомпоновки) - открывает запросы макета компоновки в консоли запросов
- при вызове на сервере выполняется только сохранение копий переданных объектов для отложенной отладки на клиенте командой "Выполнить отложенную отладку" находящейся в панели инструментов подсистемы обычного приложения или в панели действий командного интерфейса подсистемы управляемого приложения
- вычисление входящих в запрос временных таблиц- ПолВТ(ЗапросИлиМенеджерВременныхТаблиц ИмяВременнойТаблицы = "" ДопустимоеЧислоСтрок = 500000)
- варианты использования
- ПолВТ(Запрос) - получает структуру всех входящих в запрос временных таблиц
- ПолВТ(МенеджерВременныхТаблиц "Ставки") - получает таблицу значений из временной таблицы "Ставки" переданного менеджера временных таблиц
- доступна на сервере
- варианты использования
- отложенная отладка - режим работы функций режима отладки ориентированный на объекты серверного контекста; в этом режиме делается снимок объекта и сохраняется в справочник "Объекты для отладки" откуда уже можно продолжать отладку снимка объекта на клиенте в любом сеансе
- изменение значения переменной Пр (Перем1 Перем2) - присваивает параметру Перем1 значение параметра Перем2. Например Пр(Построитель.Текст "ВЫбрать * Из Константы")
- компонента контекстная подсказка
-
подключена ко всем доступным программно редакторам встроенного языка языка текста запроса и языка выражений компоновки данных
-
имеет справку по своим функциям
-
кнопка "Контекстная подсказка" ()
-
вычисление предопределенных свойств и методов
-
вычисление свойств определяемых метаданными
-
вычисление расширений форм и элементов управления
-
подсказка в специальных случаях: языка запросов - <ССЫЛКА >; внутреннего языка - <Новый > <Новый(" >
-
отображение адекватной информации об ошибке и подсветка ошибочной строки текста
-
переход к ближайшему определению идентификатора в тексте
- горячий фильтр по подстроке в списке слов подсказки
-
поддержка программного указания свойств локального контекста
-
поддержка явного указания типа в комментариях (//: Таб=Новый Таблица;)
-
поддержка шаблонов текста (st) шаблон выполняется кнопкой "Выполнить шаблон" (SHIFT+SPACE) которая включается только после указания файла шаблонов
- кнопка-переключатель "АвтоКонтекстняСправка" (CTLR+ALT+A) которая позволяет автоматически (раз в секунду) обновлять страницу справки в соответствии с текущим контекстом для курсора
-
подсказка по параметру метода или конструктора открывает страницу синтакс-помощника и выделяет текущий параметр красным
-
контекстная справка умнее определяет какую страницу справки нужно открывать по сравнению с конфигуратором для текущего слова в тексте
-
контекстная справка умеет работать с описанием как встроенного языка так и языка запросов и языка выражений компоновки данных
-
в списке контекстной подсказки колонка "Определение" и пиктограмма показывают происхождение свойства или метода (метаданные - зеленый платформа - синий локальные - красный)
- кнопка "Копировать весь текст в буфер обмена в виде выражения встроенного языка" для текста запроса
-
для корректной работы формы подсказки требуются библиотеки из пакета MS Office 95-2007
-
данная функциональность также доступна в виде отдельной подсистемы //infostart.ru/projects/848 где приведена более подробная но местами устаревшая информация
-
- синтакс-помощник
- сверху поле выбора книги (основные - встроенный язык языка запросов и языка выражений компоновки данных)
- закладка Содержание аналогичная конфигуратору показывает дерево содержания текущей книги
- закладка Индекс аналогичная конфигуратору но с отбором и горячим перемещением вперед/назад доступная для всех 3-х языков платформы позволяет быстро находить правильное слово и выполнять по нему поиск
- для корректной работы закладки Индекс требуются библиотеки из пакета MS Office 95-2007
- закладка Поиск предназначена для поиска слова по точному совпадению без учета регистра
- поиск текущей страницы в индексе и содержании
- в 8.1 для работы требуется в настройках компоненты "контекстная подсказка" указать локальный путь к архиву синтакс-помощника
- универсальные команды толстого клиента управляемого поддерживающие любые ссылочные объекты (подключать их к своим метаданным нужно в свойстве "Тип параметра команды")
- Исследовать источник - Передать источник команды в исследователь объектов
- Обработать объекты - Передать ссылки в подбор и обработку объектов
- Объединить ссылки - Передать ссылки в поиск и замену дублей в качестве группы дублей
- Отладить источник - Передать источник команды в консоль кода
- Поиск ссылок на объект - Найти ссылки на объект
- Редактировать объект - Передать объект в редактор объекта БД
- расширенное редактирование ячеек - во многих табличных полях подсистемы реализован выбор и редактирование типов не полностью поддерживаемых полем ввода
- поддерживаемые типы
- УникальныйИдентификатор
- ТаблицаЗначений
- ДеревоЗначений
- СписокЗначений
- Тип
- МоментВремени
- Граница
- Массив
- ВидДвиженияНакопления
- ВидДвиженияБухгалтерии
- ВидСчета
- ОписаниеТипов
- ТабличныйДокумент
- При вызове выбора в поле ввода ячейки используется специальная форма выбора редактируемого типа
- горячий фильтр по подстроке в названии типа
- возможность вызова контекстной справки по текущему типу
- в режиме редактирования описания типов кнопки "Только выбранные" "Установить все" "Отключить все"
- подключенные колонки табличных полей
- значение параметра в консоли кода
- значение параметра в консоли запросов
- значение параметры данных в консоли компоновки данных
- значение реквизита в редакторе объекта бд
- значение свойства в исследователе объектов и коллекций
- значение ячейки в редакторе таблицы и дерева значений
- значения элементов в редакторах списка значений и массива
- поддерживаемые типы
Установка и обновление
Файл конфигурации подсистемы нужно объединять с целевой конфигурацией. Все объекты подсистемы имеют префикс "ир".
Установка (первое объединение)
- Если ваша конфигурация находится на поддержке то включите возможность изменения корня конфигурации. Это отключит возможность полностью автоматического обновления конфигурации от поставщика однако оно будет очень простым.
- Запустите сравнение и объединение конфигураций.
- Снимите все пометки.
- Установите пометки по подсистеме «Инструменты разработчика» файла
- Установите пометку на самой подсистеме «ИнструментыРазрабочика».
- Нажмите Выполнить
- Если желаете подключите общие команды и справочники-команды к своим метаданным
- Добавьте роль ирРазработчик нужным пользователям инфобазы
Чтобы предоставить пользователю информационной базы возможность полного использования подсистемы ему нужно включить роль ирРазработчик.
Чтобы получить возможность программного использования инструментов при отладке под обычным пользователем ему нужно на время отладки включить роль ирОтладкаПользователя.
Чтобы подключить команды подсистемы (в ветке "Общие команды") для толстого клиента управляемого приложения нужно в свойстве "Тип параметра команды" указать для форм каких типов объектов целевой конфигурации они будут доступны.
Чтобы подключить команды подсистемы для обычного приложения нужно для справочников ирКоманда* во вводе на основании указать для форм каких типов объектов целевой конфигурации они будут доступны.
Установка общая для подсистемы и портативного варианта
Если текущий пользователь ОС не является администратором или запуск приложения выполнен с контролем учетных записей (User acccount control), то для работы некоторых функций инструментов требуется зарегистрировать в ОС ряд COM компонент с помощью повышенных привилегий. Для этого необходимо запустить предприятие от имени администратора (run as administrator) и командой "Регистрация COM компонент (ИР)" открыть форму регистрации и нажать там Выполнить.
Обновление (повторное объединение)
- Запустите сравнение и объединение конфигураций.
- Снимите все пометки.
- В настройках объединения установите флажок «Разрешить удаление объектов основной конфигурации».
- Установите пометки по подсистеме «Инструменты разработчика» файла
- Если подключены общие команды или справочники-команды то снимите пометки с их связующего свойства (Тип параметра или Ввод на основании)
- Установите пометку на самой подсистеме «ИнструментыРазрабочика» если она есть в списке отличий.
- Нажмите Выполнить
Удаление
- Установить отбор по подсистеме "ИнструментыРазработчика"
- Удалить все общие команды отчеты обработки общие формы общие модули общие макеты группы команд параметры сеанса элементы стиля роли
- Для справочников ирКомандаРедактироватьОбъект ирОбъектыДляОтладки ирАлгоритмы
- очистить список "является основанием для"
- удалить сами справочники
- Удалить общие картинки кроме ирИнструментыРазработчика
- Удалить подсистему "ИнструментыРазработчика"
- Удалить общую картинку ирИнструментыРазработчика
Вариант Портативный
Несколько урезанный вариант инструментов в виде набора внешних обработок. Будет полезен в тех случаях, когда менять конфигурацию базы неудобно.
Номер версии варианта Портативный образуется от номера версии варианта Подсистема, на базе которой он выпущен, путем приписывания справа латинской буквы "p" (portative).
Состав
Состоит из основной внешней обработки «ирПортативный.epf» и внешних обработок инструментов и общих модулей, которые находятся в подкаталоге «Модули» каталога обработки. Форма внешней обработки «ирПортативный.epf» является заменой панели инструментов подсистемы, а ее объект выполняет роль глобального контекста для портативных инструментов. После закрытия основной формы открытые формы инструментов теряют свою работоспособность, поэтому они закрываются. Если открыть основную внешнюю обработку в управляемом приложении, то она предложит форму запуска обычного приложения.
Запуск
Для запуска инструментов нужно в режиме предприятия открыть основную внешнюю обработку "ирПортативный.epf".
Обновление
Не следует открывать в одном сеансе разные версии инструментов даже если это выполняется последовательно. Поэтому для использования другой версии инструментов следует запускать новый сеанс. Самый простой способ корректно обновить инструменты при наличии интернета - в диалоге "О подсистеме" нажать кнопку "Обновить на актуальную версию".

Как открыть объект БД в управляемом приложении
Сначала в любом инструменте кнопкой
откройте объект в инструменте "Редактор объекта БД". Затем нажмите в этом инструменте кнопку "В тонкий"

При этом будет открыто приложение тонкого клиента, в котором сразу будет открыта форма текущего объекта по ссылке.
Функции режима отладки
Отладочные функции (От, Ис, Оп...) расположены в модуле объекта внешней обработки «ирПортативный.epf». Чтобы их вызвать в отладчике, нужно в табло вычислить выражение "ВнешниеОбработки.Создать(<ПутьКОбработке/ирПортативный.epf>, Ложь).<ИмяФункции>(<Параметры>)". Отложенная отладка обеспечивается за счет сохранения снимков в подкаталог "ОбъектыДляОтладки\<СтрокаСоединенияБазы>\*.deb".
Недостатки по сравнению с подсистемой:
- Формы открываются только в обычном приложении
- Недоступны
- Справочник "Алгоритмы"
- Справочник "Объекты для отладки"
- Справочник-команда "Редактировать объект"
- Роли
- Команда "Отладчик фоновых заданий" в консоли заданий
- Инструмент "Отладка внешних обработок БСП"
- Работает только на стороне клиента
- консоль кода (в конфигурациях без БСП)
- настройка техножурнала
- Не работает настройка журнала регистрации из-за ошибки платформы 8.2, обход которой в подсистеме реализован через серверный контекст.
- Невозможно запустить в базе, в конфигурации которой встроена подсистема "Инструменты Разработчика"(из-за конфликтов имен).
- Менее удобное сравнение/объединение доработанных портативных инструментов при обновлении на новую версию. Придется сравнивать каждый файл отдельно.
Вариант Расширение
Несколько урезанный вариант инструментов в виде расширения конфигурации. Будет полезен в тех случаях, когда менять конфигурацию базы неудобно.
Номер версии варианта Расширение образуется от номера версии варианта Подсистема, на базе которой он выпущен, путем приписывания справа латинской буквы "e" (extension).
Особенности установки
Устанавливать и включать видимость для текущего пользователя удобнее всего через внешнюю обработку "Установщик варианта Расширение".
Подключите расширение к вашей базе на платформе 8.3.10.2375+ (для клиент-серверных баз рекомендуется 8.3.12+) и режимом совместимости 8.3.9+. Снимите флажки "Безопасный режим" и "Защита от опасных действий". Как подключить расширение, можно узнать тут. Если у пользователя есть право Администрирование и ТолстыйКлиент, но у него нет роли ирПользователь и у других пользователей базы нет роли ирРазработчик, то при входе ему добавляются роли ирРазработчик и ирПользователь и сеанс перезапускается. Если в общих настройках включить флажок "Добавлять роль ИР всем администраторам", то отсутствие роли ирРазработчик у других пользователей проверяться не будет. Управлять ролями заданными в расширении можно только в режиме клиентского приложения (например через инструмент "Редактор пользователей").
При наличии в конфигурации БСП ниже чем 2.4 после добавления ролей расширения в профили групп доступа могут возникнуть проблемы с обновлением вспомогательных данных, т.к. там отсутствует поддержка ролей в расширениях. В качестве обхода проблемы можно использовать инструмент "Редактор пользователей" для добавления нужных ролей пользователям напрямую.
С помощью формы "Адаптация расширения" можно подключить параметризованные команды расширения ко всем объектам конфигурации, сгенерировать роль ирВсеПрава и подключить перехватчик создания внешних обработок БСП. Эта форма автоматически открывается при первом запуске толстого клиента управляемого приложения.
Обновление
Самый простой способ корректно обновить инструменты при наличии интернета - в диалоге "О подсистеме" нажать кнопку "Обновить на актуальную версию".

Функции режима отладки
Отладочные функции (От, Ис, Оп...) расположены в общем модуле ирОбщий. Чтобы их вызвать в отладчике, нужно в табло вычислить выражение "ирОбщий.<ИмяФункции>Лкс(<Параметры>)". Отложенная отладка обеспечивается за счет сохранения снимков в каталог объектов для отладки, задаваемый в общих настройках инструментов.
Недостатки по сравнению с подсистемой:
- Недоступны
- Справочник "Алгоритмы"
- Справочник "Объекты для отладки"
- Справочник-команда "Редактировать объект"
- Невозможно запустить в базе, в конфигурации которой встроена подсистема "Инструменты Разработчика"(из-за конфликтов имен).
Выпущенные приоритетные изменения
Поддержать развитие продукта с яндекс кошелька
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.22.63, 2.5.16.61
Вступайте в нашу телеграмм-группу Инфостарт
ИР инструменты разработка консоль запрос отладка техножурнал таблица компоновка скд контекстная подсказка
См. также
Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)
Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.
50000 руб.
10.09.2026 14027 125 0
Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.
24900 руб.
20.08.2024 83487 432 171
Инструментарий разработчика Роли и права Запросы СКД Разработчик Руководитель проекта 1С:Предприятие 8 Платные (руб)
Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.
16500 руб.
02.09.2020 286128 1608 423
Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Разработчик Аналитик Руководитель проекта 1С 8.3 Платные (руб)
Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.
14000 руб.
17.04.2026 17036 63 62
Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)
Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26
22570 руб.
06.10.2023 44346 123 54
Инструментарий разработчика Нейросети Платные (руб)
Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.
15250 руб.
25.08.2025 77244 147 41
Разработка Инструментарий разработчика Разработчик Руководитель проекта 1С 8.3 Платные (руб)
Pilot 1C превращает задачу, поставленную обычными словами, в техническое задание, код на встроенном языке и сценарии проверки. Прежде чем что-то предложить, он сверяется с устройством вашей конфигурации через граф Analyzer 1C: существует ли объект, из чего он состоит, кто его вызывает, какие роли дают права. Чего найти не удалось – спрашивает, а не выдумывает. Готовый код проходит более полутора сотен проверок по справочнику языка и стандартам разработки, который приезжает вместе с продуктом. Модель – ваша: любой сервер, совместимый с программным интерфейсом OpenAI, в том числе локальный. Правки в конфигурацию Pilot не вносит – их применяет разработчик.
18300 руб.
11.09.2026 3865 5 0
Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.
17000 руб.
10.11.2023 28829 104 46
Перед открытием она открывает форму для выбора метаданных (что хорошо).
Если в этой форме отметить все - далее все нормально.
Если (в моем случае) отмечаю группу планы обмена - падает с описанной ошибкой.
Попутно: Как на основном сайте Инструменты обработчика войти, не используя предлагемые регистрации на других сайтах(в контакте, яндекс и т.д...)?
Просто ввести логин и пароль.
Версия ИР 2.47, консоль запросов. Конфигурация "УТП для Украины" 1.2.7.4.
В параметрах запроса пытаюсь выбрать значение справочника Банковские счета, а его владельцам является Организации и Контрагенты.
Так вот при выборе владельца дает только организацию. Может, это какими-то настройками регулируется?
Если есть возможность использовать только одну обработку без всей подсистемы - наилучший вариант. Сам я в этой конфигурации править ничего не буду, я планировал просто подключить обработку менеджеру и пусть правят свои косяки (при загрузке номенклатуры из прайсов наплодили тысячи двойников), остальные обработки им просто не к чему (и даже противопоказаны)
если это возможно вышлите на gosizo@ya.ru
обычное приложение
управляемое приложение Толстый клиент c установленным свойством конфигурации "Использовать обычные формы в толстом клиенте в управляемом режиме"
ВЫБРАТЬ
ПлатежноеПоручениеВходящее.Ссылка,
ПлатежноеПоручениеВходящее.ПометкаУдаления,
ПлатежноеПоручениеВходящее.Проведен
ИЗ
Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
ГДЕ
ПлатежноеПоручениеВходящее.Контрагент = &Контрагент
И ПлатежноеПоручениеВходящее.СчетКонтрагента = &СчетКонтрагента ПоказатьСчетКонтрагента имеет тип СправочникСсылка.БанковскиеСчета
Справочник.БанковскиеСчета имеет двух владельцев - Справочник.Контрагенты и Справочник.Организации
При попытке выбрать значение параметра СчетКонтрагента вываливается список Организаций для выбора владельца. А в данном случае владельцем должен быть Контрагент.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если РежимВыбора И НЕ ЗначениеЗаполнено(Отбор.Владелец.Значение) И НЕ ЗначениеЗаполнено(ПараметрОтборПоВладельцу) Тогда
Если ТипЗнч(ВладелецФормы) <> Тип("ТабличноеПоле") Тогда
Если ТипЗнч(ВладелецФормы.ВыборПоВладельцу)=Тип("СправочникСсылка.Контрагенты") Тогда
ФормаВыбораВладельца = Справочники.Контрагенты.ПолучитьФормуВыбора();
ФормаВыбораВладельца.Заголовок = "Выберите контрагента, счет которого Вы хотите выбрать.";
Контрагент = ФормаВыбораВладельца.ОткрытьМодально();
Если Контрагент=Неопределено Тогда
Отказ=Истина;
КонецЕсли;
Если Отбор.Владелец.ТипЗначения.СодержитТип(ТипЗнч(Контрагент)) Тогда
Отбор.Владелец.Значение = Контрагент;
КонецЕсли;
Если ЗначениеЗаполнено(Отбор.Владелец.Значение) Тогда
Отбор.Владелец.Использование = Истина;
КонецЕсли;
Иначе
ФормаВыбораВладельца = Справочники.Организации.ПолучитьФормуВыбора();
ФормаВыбораВладельца.Заголовок = "Выберите организацию, счет которой Вы хотите выбрать.";
Организация=ФормаВыбораВладельца.ОткрытьМодально();
Если Организация=Неопределено Тогда
Отказ=Истина;
КонецЕсли;
Если Отбор.Владелец.ТипЗначения.СодержитТип(ТипЗнч(Организация)) Тогда
Отбор.Владелец.Значение = Организация;
КонецЕсли;
Если ЗначениеЗаполнено(Отбор.Владелец.Значение) Тогда
Отбор.Владелец.Использование = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры ПоказатьА возможно как-то изменить Вашу подсистему чтобы при начале выбора параметра с несколькими владельцами сначала выбрать владельца и послать его в качестве ПараметрОтборПоВладельцу в форму выбора?
Краткое описание изменений:
* Исправлены мелкие ошибки
+ Реализована возможность использования параметров в обработчиках запроса в консоли запросов и в произвольном алгоритме в подборе и обработке объектов
+ Добавлен новый инструмент "Список пользователей"
Но есть пожелание по удобству для пользователей. Хотел я заполнить список значений для отбора в "Анализ журнала регистрации ИР" по реквизиту Событие (которое, кстати, на самом деле Представление события) по значениям "Данные. Добавление" и "Данные. Изменение". Но это не легко сделать.
Форма со значениями отборов модальная и ее нужно открывать несколько раз чтобы скопипастить нужные значения. А ведь можно списки для этих отборов заполнить из текущих данных. Например, это реализовано в для сравнений Равно или НеРавно
{Обработка.ирПоискДублейИЗаменаСсылок.Форма.Форма.Форма(899)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПередЗаписью': {Документ.УстановкаЦенНоменклатуры.МодульОбъекта(194)}: Поле объекта недоступно для записи (ЭтотОбъект)
в "Обычное приложение" - такой ошибки нет
используется обработка"ирПоискДублейИЗаменаСсылок" - для замены дублей номенклатуры в УТ11
Какой бы объект не выбрал всегда при нажатии ничего не происходит, кроме сообщений типа
при нажатии на XDTO:
Ошибка отображения типов:
Отсутствует отображение для типа 'Символы'
при нажатии на XML:
Несоответствие типов (параметр номер '2') (Ошибка отображения типов)
Я уже зарегистрирован в uNet и на мой почтовый ящик не могу получить информацию для восстановления пароля.
После ввода е-мейла система требует еще и ответа на секретный вопрос, который я благополучно забыл.
Платформа: 8.3.9.1850
Режим БД: клиент-серверный
Конфигурация. Название: Бухгалтерия предприятия, редакция 2.0 (2.0.66.46)
Конфигурация. Основной режим запуска: Обычное приложение
Конфигурация. Режим совместимости: Версия8_2_16
Конфигурация. Версия БСП: 2.1.3.50
Инструменты разработчика: Портативные 4.43p
Клиент. ОС: Windows x86 version 6.2 (Build 9200)
Клиент. Приложение: Обычное приложение 32б
Клиент. От имени администратора Windows: Нет
Сервер. ОС: Windows x86 version 6.2 (Build 9200)
Сервер. Отладка: нет
СтруктураОбъекта = ирОбщий.ОбъектБДПоКлючуЛкс(УдаляемаяСсылка);
После корректной обработки замены, в момент попытки зачистки следов.
1С:Предприятие 8.3 (8.3.5.1486)
Управление производственным предприятием, редакция 1.3 (1.3.60.3)
режим клиент-сервер
ирКонсольЗапросов
Если выбрать режим отображения результата выборки "Дерево", получаем сообщение об ошибке
{Форма.Форма.Форма(933)}: Недостаточно фактических параметров
ирОбщий.ОбновитьЧислоЗагруженныхЭлементовВыборкиЛкс(ЭлементыФормы.РезультатКоллекция, ЭлементыФормы.КоманднаяПанельКоллекция,
Основные изменения
Поиск дублей и замена ссылок
+Добавлено автоматическое сохранение и восстановление настроек поиска дублей в разрезе объектов метаданных
+Добавлен и сделан основным режим загрузки группы дублей при активизации ее строки
Подбор и обработка объектов
*Исправлена ошибка недоступности обработки "Проведение" для табличных частей документов в режиме Объекты
Общее
+В редакторе таблицы значений добавлена кнопка "Загрузить из MXL"
Отложенная отладка
+Добавлен справочник "Объекты для отладки", куда теперь сохраняются и откуда затем извлекаются данные для отложенной отладки (функциями От() и Отладить())
Консоль заданий
*Исправлена ошибка кнопки "Сбросить отбор" для списка фоновых заданий, которая не полностью отключала отбор
(940) Здесь традиционно публикуются основные изменения, чтобы не загромождать второстепенной информацией. Полный список нужно смотреть на основном сайте.
> Возможно если ты опишешь конкретную операцию, которая вызвала сложности, то я рассмотрю это предложение
так я же описал - про захват корня рекурсивно
> Полный список нужно смотреть на основном сайте
Точно! :) Про новый справочник там есть.
Про хранилище пока остаюсь при своем мнении. Никаких индивидуальных для подсистемы ИР особенностей по работе с хранилищем нет. Не считаю нужным описывать работу с хранилищем в конфигураторе. Об этом можно в куче других мест почитать.
Про добавление нового справочника кстати и в (938) написано.
В общем, это в любом случае отношения к делу не имеет, т.к. подсистема "Инструменты разработчика" не имеет каких-либо особенностей, влияющих на работу с хранилищем.
Вот-вот, я поэтому и не стал уточнять эти нюансы. А что касается особенностей я уже заметил, почти все релизы ИР не требуют захвата корня. А, тем более, я своим глазами видел как один "нехороший франч" около 2 месяцев держал корень нашей УПП.
И еще про особенности. При обычной работе я знаю какие объекты собираюсь изменять и захватываю только их. А тут получается тайна покрытая полумраком. :)
И, тем более, если есть "особые" инструкции по обновлению подсистемы, то почему бы не дополнить их особыми инструкциями по взаимодействия с хранилищем при обновлении.
Еще раз повторю - захватывать при этом корень рекурсивное, имхо, не комильфо.
Благодарю ещё раз за чудо обработку, но сейчас проблема есть у расширения при попытке выполнить поиск и удаление дублей
Обработка неправильного "Макаров Антон Александрович, Генеральный директор": {ИнструментыРазработчикаTormozit Обработка.ирПоискДублейИЗаменаСсылок.МодульОбъекта(942)}: Поле объекта не обнаружено (Ref)
Обработка неправильного "Железняк Ольга Эдуардовна, Генеральный директор": {ИнструментыРазработчикаTormozit Обработка.ирПоискДублейИЗаменаСсылок.МодульОбъекта(942)}: Поле объекта не обнаружено (Ref)
Обработка неправильного "Андрюков Сергей Валентинович, Генеральный директор": {ИнструментыРазработчикаTormozit Обработка.ирПоискДублейИЗаменаСсылок.МодульОбъекта(942)}: Поле объекта не обнаружено (Ref)
Платформа: 8.3.14.1779
Режим БД: клиент-серверный
Конфигурация. Название: Бухгалтерия предприятия, редакция 3.0 (3.0.70.50/3.1.41.6/3.0.1.158)
Конфигурация. Основной режим запуска: Управляемое приложение
Конфигурация. Вариант встроенного языка: Русский
Конфигурация. Режим совместимости: Версия8_3_12
Конфигурация. Версия БСП: 3.0.1.428
Инструменты разработчика. Версия: Расширение 4.98e
Инструменты разработчика. Объекты на сервере: Да
Расширения. СВБ_ИсправлениеОшибок ()
Расширения. ИнструментыРазработчикаTormozit (4.98e)
Клиент. ОС: Windows x86-64 Microsoft Windows 8.1 version 6.3 (Build 9600)
Клиент. Приложение: Обычное приложение 64б
Клиент. От имени администратора Windows: Да
Клиент. Текущий язык системы: ru
Сервер. ОС: Windows x86-64 Microsoft Windows 8.1 version 6.3 (Build 9600)
Сервер. Отладка: tc
В описании новых версий упоминать о новых объектах/реквизитах. Ведь их сохранение требует монопольного доступа.
Вот, к примеру, в 2.52 появился справочник ирОбъектыДляОтладки. И теперь мне придется ждать вечера чтобы обновить конфигурацию базы данных.
Основные изменения:
Список пользователей
+Теперь сеанс под выбранным пользователем запускается и при отсутствии у него прав на Automation
Поиск дублей и замена ссылок
+Добавлена поддержка сравнения по реквизитам-строкам неограниченной длины
Динамический список
+Добавлена поддержка журналов документов и критериев отбора
В описание публикации добавлены реквизиты для желающих выразить благодарность.
Поставил ИР (для 8.1).
появилась проблема - у некоторых пользователей (с полными правами) , база не загружается - появляется сообщение "Установлена новая компонента" и перезагрузка и так бесконечно.
Удивительно , что у меня (тоже полные права) такой ошибки не возникает.
Ломаю голову.
Подскажите, пожалуйста, где копать.
Да видимо причина в этом.
Я запускаю 1с не только с полными правами в 1с, но и админскими на терминале.
У меня всё окей
Другие пользователи - с полными правами в 1С, но с обычными правами в терминале, обламываются.
Спасибо, вопрос закрыт.
Основные изменения:
+В консоли запросов и подборе и обработке объектов реализован режим динамического считывания данных, позволяющий работать с огромными выборками.
*Исправлена свежая ошибка открытия подбора и обработки объектов при отсутствии сохраненных настроек.
Основные изменения:
Подбор и обработка объектов.
+Реализован режим многотабличной выборки (можно выбирать данные сразу из нескольких однотипных таблиц)
Консоль запросов
*Прямое обращение к параметрам в обработчиках более недоступно. Вместо него теперь нужно использовать обращение через структуру Параметры.
Сама подсистема видна, плюс набор команд/обработок видны, но при выборе команды/обработки 1С пишет, что нет формы для данного режима запуска.
Основные изменения:
+ В обработках, записывающих данные, добавлен флажок "Запись на сервере", включенный по умолчанию для конфигураций под управляемое приложение.
+ Подбор и обработка объектов. Добавлен режим обхода выборки "Ключи объектов" (ссылки или несчитанные наборы записей), который эффективно применять для очистки регистров и регистрации изменений.
* Исправлен ряд проблем при работе в конфигурациях с разделением данных.
+ Добавлен инструмент "Анализ техножурнала"
+ Список пользователей. Запуск под пользователем сделан более настраиваемым с помощью флажков
"Использовать Automation"
"Использовать временного пользователя"
Основные изменения:
-Обеспечена поддержка 8.3
-В консоли кода и консоли запросов реализован механизм восстановления прерванной сессии
-В консоли кода реализовано сохранение и загрузка в справочник Алгоритмы сериализуемых в хранилище значения значений параметров и признаков Вход и Выход
-В редакторе объекта БД и редакторе изменений на узле реализовано динамическое считывание выборки из таблицы БД
-В списке пользователей исправлена ошибка итогового сброса пароля пользователя при установленном флажке "Использовать временного пользователя"
-В подборе и обработке объектов исправлена свежая ошибка записи
При попытке записать движения, выдаёт ошибку
НоваяТаблица = ЭлементыФормы[ИмяТаблицыРегистра].Значение;
На скриншоте включен переключатель (кнопка) "Непустые". Поэтому в списке наборов движений видны только наборы, в которых есть строки. По всей видимости в данном документе они все пустые.
По ошибке хотелось бы увидеть более подробное описание, включая информацию для технической поддержки и тип записываемого документа.
ОбщийМодуль.ФоновыеРегламентыеПроцедуры.Модуль : 511 : Об.УстановитьПометкуУдаления(Истина);'" - в конце Context - это код 1с
Основные изменения:
- Добавлен инструмент "Настройка техножурнала"
- Добавлен инструмент "Настройка журнала регистрации"
- Добавлен инструмент "Тестирование метаданных"
- В анализе техножурнала улучшен разбор событий SDBL, DBMSSQL и некоторых других (969)
- В анализе журнала регистрации добавлена форма события
- В интерфейсной панели реализовано хранение настроек в профиле пользователя базы 1С
При объединении subj с УТ 10.3.3.3 типовая обработка "КонсольОтчетов" объединяется с "ирКонсольПостроителейОтчетов".
Приходится в окне сравнения и объединения жать пр.кн.мыши-Отменить соответствие объектов, потом Обновить и только после этого нажать Выполнить.
Видимо когда-то ирКонсольПостроителейОтчетов была сделана из УТ и теперь при объединении сравнивается по внутренним идентификаторам...
Получается недостаточно того что все метаданные имеют префикс "ир" нужно быть начеку и смотреть а не заменится ли при объединении типовой объект.
Спасибо за совет!
Основные изменения
- Консоль запросов. Реализовано извлечение текстов запроса SDBL и СУБД и плана запроса СУБД с представлением их в оригинальном и метаданном виде, для чего необходимо в полуручном режиме настроить техножурнал
- Настройка техножурнала. Исправлены мелкие ошибки
- Анализ техножурнала. Добавлена поддержка планов запросов и перевода запросов на термины метаданных.
пожалуйста, посмотрите где я выполнил лишнее:
Общиекоманды.ИрРедактироватьИзмененияНаУзле.ТипПараметраКоманды - расставил галочки на всех объектах;
Общиекоманды.ИрРедактироватьОбъекты.ТипПараметраКоманды - расставил галочки на всех объектах;
Справочники.ирКомандаРедактироватьобъект.ВводитсяНаОсновании - расставил галочки на всех объектах;
Справочники.ирОбъектыДляОтладки.ВводитсяНаОсновании - расставил галочки на всех объектах;
подскажите, пожалуйста, а как сделать что бы у пользователей, у которых нет роли "Разработчик ИР" при нажатии "ввести на основании" не были видны ".Редактировать объект ИР" ?
Спасибо.
пожалуйста, посмотрите где я выполнил лишнее:
Общиекоманды.ИрРедактироватьИзмененияНаУзле.ТипПараметраКоманды - расставил галочки на всех объектах;
Общиекоманды.ИрРедактироватьОбъекты.ТипПараметраКоманды - расставил галочки на всех объектах;
Справочники.ирКомандаРедактироватьобъект.ВводитсяНаОсновании - расставил галочки на всех объектах;
Справочники.ирОбъектыДляОтладки.ВводитсяНаОсновании - расставил галочки на всех объектах;
А копипаст разрешен в небольших количествах?
Про "копипаст" подтверждаю, что он разрешен в любых количествах. Копипаст в больших количествах желательно делать с указанием ссылки на первоисточник и автора.
Большое число изменений.
Основные изменения:
- Анализ техножурнала значительно улучшен. Введено понятие "Трасса" - последовательность событий техножурнала относящихся к одному сеансу... Добавлена форма конвертора SDBL->Запрос, которая восстанавливает не только текст запроса 1С, но и его параметры, а также позволяет отладить восстановленный запрос в консоли запросов.
- Добавлены клиентские функции режима отладки техн() и техк() для обозначение начала и конца трассы техножурнала
- В консоли кода, консоли запросов и консоли компоновки добавлены кнопки "Трасса", позволяющие проанализировать трассу выполненного кода, запроса и компоновки соответственно.
- В анализ журнала регистрации сделан более удобный отбор выгрузки без отдельного окна.
- Поиск дублей и замена ссылок теперь позволяет указать элемент, содержащий правильные данные, который по умолчанию совпадает с правильной ссылкой.
Интерфейсная панель
- В интерфейсной панели восстановлена поддержка каталогов файлов и переделан механизм генерации и обработки команд контекстного меню, что исправило много различных некритичных ошибок.
- Устранено падение на 8.3.2
- Реализована запись объекта для отложенной отладки вне отлаживаемой транзакции в режиме клиент-сервер
Если вручную ставить на обмен документ, то возникает большая неприятность - движения этого документа не встанут на обмен. В итоге получается большая подстава - в получающем узле будут данные документа не совпадающие с движениями документа. Тут либо доработать (прикрутить галочку, есть галочка (по умолчанию) - отправляем на обмен движения документа, нет галочки - только документ, без движений). Либо выставить предупреждение большими красными буквами.
Если желания ковыряться в этой задаче нет - разместите предупреждение, чтобы пользователи знали о ней. Иначе этот инструмент вместо решения проблемы может стать источником проблемы.
Версия 2.69, но заметил первый раз раньше
Запускаем консоль запросов, в консоли серверов пошло обращение к базе - нарастает счетчик "Захвачено СУБД", субъективно через некоторое время база начинает чуть приормаживать.
Консоль запросов закрыл - счетчик обнулился, притормаживание ушло.
Пробовал несколько раз - картина повторяется. Такое возможно или ложная тревога? Что консоль с базой в хоолостом режиме делает?
все конечно замечательно, особенно понравилась "Консоль запросов" с Отложенной отладкой - отладил и оптимизировал "чужой" много тысяч-строчный(много пакетный) запрос))
Но не хватает инструкции как обновить версию при использовании Хранилища конфигурации....
Сейчас с утра убил свою копию конфы при попытке обновить версию ИР... (((
угу понятно что не подсистема виновата)) а прямота рук))
Обновлял "ИР v69" на "ИР v70" ("ИР v69" - была первично загружена, до этого не использовал ИР)
1)Захватил верхний уровень
2)Отфильтровал по подсистеме "ИР" и "захватил" все отфильтрованные
3)далее делал все вроде как по видео
короче в результате "Обновления" - конфигурация сменила Название на "Инструменты разработчика" и например перестали заполнятся "параметры сеанса".
Сильно не стал разбираться Откатился на предыдущую копию в "Хранилище" где уже была ИР "v69"
Консоль запросов
*При открытии списка значений исправлена потеря типов значений, происходившая в некоторых случаях
Описание подсистемы
+Добавлено описание удаления подсистемы в разделе Установка и обновление
Функции режима отладки
+Добавлена функция ПолВТ() для получения структуры из содержимого всех временных таблиц, использованных в запросе
+Реализована поддержка сохранения для отложенной отладки временных таблиц вместе с запросом с ограничением числа строк (по умолчанию 500000)
Поиск дублей и замена ссылок
*Замена в независимых регистрах сведений теперь выполняется с учетом флага ОбменДанными.Загрузка
*Исправлена замена регистратора в наборах записей, которая ранее приводила к ошибке записи
Консоль кода
*Исправлена внесенная несколько версий назад ошибка, из-за которой команда синтаксической проверки не сообщала об ошибках
Редактор изменений на узле.
*Исправлена ошибка, когда при регистрации списка объектов пустая ссылка приводила к регистрации всех данных
Основные изменения:
Общее
*Исправлены аварийные завершения работы программы в 8.2.18
+Добавлен редактор табличного документа
Функции режима отладки
*Исправлена поддержка функций Ис и Исследовать на сервере (отложенная отладка)
Подбор и обработка объектов
*Исправлена свежая ошибка обработки регистров
Основные изменения
Консоль запросов
*Исправлен бесконечный цикл при анализе некоторых текстов запросов с отсутствующей завершающей фигурной скобкой
+Добавлен новый тип запроса "Папка" и команда в контекстном меню дерева запросов "Добавить папку"
+В дерево запросов и дерево запроса добавлена колонка "Количество строк результата"
Общее
*В консолях запросов, построителей, компоновки устранена ошибочная возможность перетаскивания строки дерева в дочернюю ветку, что вызывало переполнение стека
Вычислитель контекста
*В расширенном вычислении (информатором) реализована поддержка 8.2.18, отключенная ранее из-за аварийного завершения программы
Поиск дублей и замена ссылок
+В составе текущей группы реализовано автоматическое управление видимостью колонок так, чтобы отображались только колонки, в которых есть различия
Консоль компоновки данных
*Исправлена ошибка сохранении стандартных настроек каждый раз в новый вариант схемы
Основные изменения:
*Исправлено много мелких ошибок
+Индикаторы процессов (в строке состояния) сделаны многоуровневыми.
+Консоль компоновки данных. Добавлена закладка с таблицей ресурсов схемы, откуда их можно открывать в редакторе выражения компоновки. Доработан редактор выражений компоновки.
+Консоль запросов. Для дерева запроса добавлена колонка "Длительность чистая".
несколько замечаний:
1. "О подсистеме" наверное, все-таки лучше показывать на формочке. Для того, чтобы посмотреть номер версии или ссылку на проект, запускать справочную систему, по-моему чересчур накладно. У меня эта кнопка иногда отрабатывает 3 минуты!
2. Столкнулся с проблемой у коллеги, в Консоли запросов при нажатии на кнопку "Сформировать схему и настройки компоновки и открыть их в консоли компоновки данных (ИР)" тип запроса изменяется на "Компоновка" и дальше ничего не происходит. У меня в той же конфигурации открывается консоль СКД.
3. В той же ситуации (при преобразовании запроса в СКД и открытии его в консоли СКД) параметры, имеющие списочный тип передаются в виде пустых ссылок.
4. И, напоследок, пожелание. В обработке "Консоль запросов (дополненная)" от есть чудесная возможность получить текст процедуры создания объекта запроса, установки текста и параметров и обхода результата выполнения. В Консоли запросов (ИР) я нашел только возможность получения текста запроса в виде выражения встроенного языка. Очень бы хотелось дополнить текст выражения текстом установки параметров запроса.
1. Никто больше ни с чем похожим не обращался. Действительно при первом вызове в сеансе справочной информации строится ее индекс и поэтому может требоваться несколько секунд для ее открытия. Но 3 минуты - явно какая то проблема либо с исполняемыми файлами платформы, либо с ОС, либо с антивирусом. Наиболее вероятно последнее. Попробуй сначала победить ее. Даже если первый раз окно открывается 10 секунд, то вроде бы в реальной работе с подсистемой его не так уж и часто приходится открывать. Если у тебя по-другому, то было бы интересно узнать такой сценарий.
2. По такому описанию очень сложно воспроизвести проблему. Демонстрационный пример значительно упростит это.
3. Проблему воспроизвел.
4. Подобная функция уже давно реализована в обработчиках таблицы результата и строки таблицы результата.
Основные изменения:
- В списке пользователей улучшен "Запуск под пользователем"
- В большинстве полей ввода многотипных ссылок реализована возможность вводить ссылку с распознаванием типа в виде строки "Объект не найден..."
- В консоли компоновки добавлена возможность редактировать вычисляемые поля схемы в редакторе выражений компоновки
- Исправлены ошибки
Ситуация следующая:
База: конфа розница 1.0 Очень сильно допиленная, файловый вариант.
В один прекрасный момент при заходе в "РМК" плaтформа просто зaкрывалась с ошибкой "блaблабла "Отправить" "Не отправлять" Была сделана копия(просто копировать→вставить)Зaпустили chdbfl.exe. Да бaза теперь рaботает на ура, только вот незадачa, пропали чеки ККМ за месяц. Заходим в сохраненную копию с первого вида все работает, но как только обращаешься к чекам, платформа сразу вылетает с "неизвестной науке ошибкoй". Именно при любом обращении, будь то Открытие формы документa, или ображение через консоль запросов, или регистрация на обмен, или регистр "продажи", вообще при любом. При попытки создания dt вылетает ошибка недостаточно памяти (хотя памяти более чем придостаточно. При проверки логическoй и ссылочной целосности платформа так же вылетaет, когда доходит до чего либо где есть ссылка на чеки.
Дело в том, что это распределеннaя база Необходимо выдернуть от туда чеки за последние три дня, у кого какие есть сoображения по этому повoду.
Зaранее спасибо.
У себя изменил:
Процедура ВывестиВТаблицу(Кнопка)
//ИЗМЕНЕНО (Начало 19.06.2013
Если ЗначениеЗаполнено(мИмяФайла) Тогда
СохранитьЗапросыВФайл(Ложь, Ложь);
КонецЕсли;
//Окончание 19.06.2013)
...Т.е. если консоль СКД вызывается из, например, консоли отчетов мИмяФайла не определен, если обычный вызов консоли СКД файл берется из предыдущей сессии и всё ненавязчиво сохраняется перед выполнением отчета.
upd: На версии 2.84 (ОС Windows XP) обнаружилось при открытии консоли отчетов:
{Обработка.ирКонсольЗапросов.Форма.Форма.Форма(4785)}: Ошибка при вызове метода контекста (Прочитать)
Текст.Прочитать(Файл.ПолноеИмя);
по причине:
Файл не обнаружен 'C:\WINDOWS\system32\wbem\ru-RU\cimwin32.mfl'
создал папку ru-RU, скопировал файл из C:\WINDOWS\system32\wbem\ , вроде вылечилось.
Проблема в консоли запросов будет исправлена в следующей версии. Она возникает только на 64-битных ОС при выборе типа запроса WQL. Просьба точнее называть инструменты (не "консоль отчетов", а "консоль запросов").
на самом деле, не только при выборе типа запроса WQL. Можно попробовать сделать так: добавить новый запрос, указать его тип WQL, закрыть окно с ошибкой, затем изменить тип запроса на любой другой (например, SQL). Тогда при каждой активизации этого запроса будем снова получать ту же ошибку, несмотря на то, что тип запроса у него не WQL.
На нашем сервере разработки нашел несколько папок, в которых содержится файл cimwin32.mfl:
1. "C:\Windows\System32\wbem\en-US\cimwin32.mfl"
2. "C:\Windows\winsxs\amd64_microsoft-windows-wmi-mof.resources_31bf3856ad364e35_6.1.7600.16385_en-us_c921af17d99c5cc8\cimwin32.mfl"
3. "C:\Windows\System32\wbem\ru-RU\cimwin32.mfl"
4. "C:\Windows\winsxs\amd64_microsoft-windows-wmi-mof.resources_31bf3856ad364e35_6.1.7600.16385_ru-ru_1242c6cc2aa1586f\cimwin32.mfl"
Если заходить через эксплорер, то в любой из этих папок данный файл видно. Если же открывать эксплорер из 1С (Файл --> Открыть), то в папках 1 и 3 файл не отображается (даже если 1С запускать от имени администратор домена и/или администратора системы). Зато он прекрасно находится в папках 2 и 4.
Поэтому я в основной форме консоли запросов воткнул заглушку в процедуре ОбновитьКлассыWMI():
Файл = Новый Файл(ПолноеИмя);
Если Не Файл.Существует() Тогда // (+) 21.06.2013 ~заглушка~ - почему то 1С-ка упорно не хочет видеть файл C:\Windows\System32\wbem\ru-RU\cimwin32.mfl (Tormozit обещал исправить в версии 2.85)
ПолноеИмя = "C:\Windows\winsxs\amd64_microsoft-windows-wmi-mof.resources_31bf3856ad364e35_6.1.7600.16385_ru-ru_1242c6cc2aa1586f\cimwin32.mfl"; // в этом каталоге файл видит ...
Файл = Новый Файл(ПолноеИмя);
КонецЕсли; // (-) 21.06.2013
Воспроизведение:
Создаём в консоли СКД Отчет1{НаборДанных1(Выбрать 1)}, и Отчет2{НаборДанных2(Выбрать 2)}. Далее открываем на редактирование Отчет1, не закрывая редактор Отчет1 открываем на редактирование Отчет2, далее ОК в редакторе Отчет1 (тут схема Отчет1 загружается в Отчет2 дерева!), ОК в редакторе Отчет2 (тут получаем ошибку: {Отчет.ирКонсольКомпоновокДанных.Форма.Форма.Форма(1378)}: Значение не является значением объектного типа (СхемаКомпоновкиДанных мРедактируемаяКонструкторомСтрока.СхемаКомпоновкиДанных = ЗначениеВыбора;). В результате в обоих отчетах дерева получили {НаборДанных1(Выбрать 1)}.
Вчера таким образом убил один из разрабатываемых отчетов, причем пару раз :) Хорошо бэкап файлика делался. Когда много окон открыто сложно такие вещи отслеживать.
Пока что такую заглушку у себя сделал:
Процедура ДеревоОтчетовПередНачаломИзменения(Элемент, Отказ)
...
ЭтаФорма.Панель.Доступность = Ложь; //ИЗМЕНЕНО Сергей (27.06.2013)
КонструкторСхемы.Редактировать(ЭтаФорма);
КонецЕсли;
КонецПроцедурыПроцедура ДеревоОтчетовПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель)
...
ЭтаФорма.Панель.Доступность = Ложь; //ИЗМЕНЕНО Сергей (27.06.2013)
КонструкторСхемы.Редактировать(ЭтаФорма);
КонецЕсли;
Элемент.ТекущаяСтрока = НоваяСтрока;
Модифицированность = Истина;
КонецПроцедуры ПоказатьПроцедура ОбработкаВыбора(ЗначениеВыбора, Источник)
Если ТипЗнч(ЗначениеВыбора) = Тип("СхемаКомпоновкиДанных") Тогда
ЭтаФорма.Панель.Доступность = Истина; //ИЗМЕНЕНО Сергей (27.06.2013)
...Недостатки заглушки:
1) При отмене редактирования схемы доступность консоли не восстанавливается :)
2) Нельзя смотреть/редактировать несколько схем одновременно (для этого и делалась)
Как вариант на будущее:
а) Каким-то образом всё же отлавливать отмену редактирования схемы
б) Или вызывать КонструкторСхемы.Редактировать(СлужебнаяФорма), тогда можно и отмену обрабатывать, и несколько схем одновременно редактировать. (Но изменений много делать.)
upd: изменил в "заглушке" ЭтаФорма.Панель.Доступность на ЭлементыФормы.ПанельВсехНастроек.Доступность, добавил на форму кнопку "Доступность" - сбрасывает доступность настроек в истину.
У меня вот такая мысль - при щелчке по запросу СКД в дереве консоли вызывается не непосредственно конструктор СКД, а некая служебная форма, в эту форму передаются схема компоновки и ссылка на строку дерева, и дальше автоматом из служебной формы вызывается конструктор СКД. Если нажали ОК в конструкторе -> схема передается в служебную форму и далее автоматом передаётся в основную форму. Если нажали Отмена в конструкторе, то нужно вручную нажать Отмена в служебной форме. Так можно одновременно несколько схем редактировать/смотреть, и запретить дважды один отчет на редактирование открывать.
Если видели справочник "Произвольные отчеты" (СКД) в УПП, там в целом такая же схема (в смысле конструктор привязан к "своей" форме). Остаётся момент, чтобы случайно не закрыть служебную форму, выводить в неё заголовок редактируемого отчета и предупреждать при ручном закрытии, например.
1) вызывается СлужебнаяФорма1(СхемаОтчета1,ИдСтрокиДерева1) -> КонструкторСКД(СлужебнаяФорма1)
2) вызывается СлужебнаяФорма2(СхемаОтчета2,ИдСтрокиДерева2) -> КонструкторСКД(СлужебнаяФорма2)
3) закрытие КонструкторСКД(СлужебнаяФорма1) (допустим ОК) -> отредактированная схема передается в СлужебнаяФорма1 -> по ИдСтрокиДерева1 схема передается в консоль СКД.
Вроде нет проблем (и модальность не используется). Точно так же можно одновременно редактировать схемы скд в "Произвольных отчетах" УПП.
upd: при редактировании отчета можно автоматом из служебной формы конструктор запускать, т.е. проблем пользователю не будет (единственное дополнительное окно формы на заднем плане). Также и при успешном редактировании схемы можно автоматом закрывать связанную форму. Единственное, как писал выше, нужно чтобы её случайно не закрыли.
В справочнике описанный подход естественен, т.к. открывается и сохраняется независимо каждый объект. Консольный подход обычно ориентируется на работу только с одним (текущим) объектом из множества.
Делать из дерева отчетов консоли подобие справочника я бы не хотел, т.к. теряется смысл консольного подхода.
Приведи мне пример хотя бы одной консоли, в которой используется описанный тобой подход.
Идея в том, что при вызове ОбработкаВыбора(ЗначениеВыбора, Источник) источником выступает экзэмпляр КонструкторСхемыКомпоновкиДанных, и можно хранить соответствие (СтрокаДерева-КонструкторСКД) в таблице и находить нужный отчет.
Приложил пример реализации, вот основные изменения (в модуле формы):
Скрытый текст |
|---|
Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
Если ТипЗнч(ЗначениеВыбора) = Тип("СхемаКомпоновкиДанных") Тогда
//ИЗМЕНЕНО Сергей (Начало 05.07.2013
// По источнику (Конструктор компоновки) определяем строку дерева отчетов
СтрСоотв = мСоотвКонструкторовИСтрок.Найти(Источник, "КонструкторСКД");
Если СтрСоотв <> Неопределено Тогда
мРедактируемаяКонструкторомСтрока = СтрСоотв.СтрДереваОтчетов;
мТекущаяСтрока = СтрСоотв.СтрДереваОтчетов;
ЭлементыФормы.ДеревоОтчетов.ТекущаяСтрока = СтрСоотв.СтрДереваОтчетов;
мСоотвКонструкторовИСтрок.Удалить(СтрСоотв);
КонецЕсли;
//Окончание 05.07.2013) Сергей
... Показать...
//ИЗМЕНЕНО Сергей (Начало 05.07.2013
Если НЕ УстановитьСоотвКонструкторовИСтрок(НоваяСтрока, КонструкторСхемы) Тогда
Возврат;
КонецЕсли;
//Окончание 05.07.2013) Сергей
КонструкторСхемы.Редактировать(ЭтаФорма);
...//ИЗМЕНЕНО Сергей (Начало 05.07.2013
Функция УстановитьСоотвКонструкторовИСтрок(парамТекущаяСтрока, парамКонструкторСхемы)
СтрСоотв = мСоотвКонструкторовИСтрок.Найти(парамТекущаяСтрока, "СтрДереваОтчетов");
Если СтрСоотв = Неопределено Тогда
СтрСоотв = мСоотвКонструкторовИСтрок.Добавить();
Иначе
Ответ = Вопрос("Возможно этот отчет "+СокрЛП(парамТекущаяСтрока.ИмяОтчета)+" уже редактируется."+Символы.ПС+"Продолжить?", РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да);
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
СтрСоотв.КонструкторСКД = парамКонструкторСхемы;
СтрСоотв.СтрДереваОтчетов = парамТекущаяСтрока;
Возврат Истина;
КонецФункции
//Окончание 05.07.2013) Сергей Показать |
src\DataSeparationService.cpp(3456):
9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3: Файл не обнаружен 'v8srvr://ИМЯСЕРВЕРА/ИМЯБАЗЫ/Files/SprScndInfo'
9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3: Файл не обнаружен 'SprScndInfo'При попытке запуска Консоли запроса.
{Обработка.ирКонсольЗапросов.Форма.Форма.Форма(4785)}: Ошибка при вызове метода контекста (Прочитать)
Текст.Прочитать(Файл.ПолноеИмя);
по причине:
Каталог не обнаружен 'C:\WINDOWS\system32\wbem\ru-RU\cimwin32.mfl'
по крайней мере у меня (в ОС WinXPsp3) - нет каталога "ru-RU"
Работала без проблем и неожиданно стала спотыкаться. Первоначально решил что связано с конкретным списком запросов, но выскакивает при переключении в списке запросов между пустыми запросами.
Консоль запросов
+Добавлен тип запроса WQL
+Рядом с таблицей результата добавлена сворачиваемая таблица свойств строки
Исправлены ошибки в консоли запросов, подборе и обработке объектов, редакторе объекта БД, интерфейсной панели, консоли компоновки данных, отложенной отладке
{Отчет.ирКонсольКомпоновокДанных.Форма.Форма.Форма(1269)}: Поле объекта не обнаружено (Родитель)
Если СтрокаОтчета.Родитель = Неопределено Тогда
Проверял на чистой конфе ИС 2.86.
Подбор и обработка объектов БД, при поиске с флагами Автозаполнение и Все поля, хотелось бы вывести сначала все реквизиты как в шапке формы документа, а потом уже всё остальное. Или хотя бы сделать кнопку, заполняющую Выбор всеми реквизитами, с возможностью их дальнейшей настройки
При группировке выбранных полей, после нажатия "Найти объекты" выдаёт ошибку
КолонкаТП = КолонкиТабличногоПоля[ИмяПоля];
У меня некоторые пользователи переходя из одной конторы в другую удивленно спрашивают куда подевались кнопки "Редактор объекта ИБ" и "Подбор и обработка объектов ИБ"? Разве это не входит в стандартную конфигурацию? Так что, информацию ВМ кошелька передаю им для осуществления благодарностей, а уж потом будет установка ИР.
Предлагаю всем переходить на такую практику использования популярных решений с Инфостарта.
Использую мобильную версию 2.82.2.
Консоль запросов, при переходе с текста запросов на закладку Параметры выдал ошибку в цикле, при нажатии на любую кнопку сообщение повторялось. Пришлось убивать сеанс.
{ВнешняяОбработка.ирГлобальный.МодульОбъекта(1694)}: Значение не является значением объектного типа (ПолучитьПиктограммуТипаЛкс)
КартинкаТипа = ирНеглобальный.ПолучитьПиктограммуТипаЛкс(ТипЗначения);
1. В Консоли компоновки когда открываешь набор данных запрос в консоли запросов и далее сохраняешь не находит текущую строку дерева компоновки. У себя исправил, нужно добавить одну строку в процедуру формы ОбработкаВыбора:
КонструкторСхемы = Новый КонструкторСхемыКомпоновкиДанных;
мКонструкторыСхем[ЭлементыФормы.ДеревоОтчетов.ТекущаяСтрока] = КонструкторСхемы; //ИЗМЕНЕНО Сергей (04.09.2013)
КонструкторСхемы.УстановитьСхему(ТекущаяСхемаКомпоновкиДанных);
КонструкторСхемы.Редактировать(ЭтаФорма);
ЗначениеВыбора.НаборДанных.Запрос = СтарыйТекст;
=========================================
2. По новому конструктору запросов:
2.1. Вот такой запрос не открывает:
Выбрать 1 А Поместить Т;
Выбрать А Из Т ГДЕ ТИПЗНАЧЕНИЯ(А) <> ТИП(БУЛЕВО)
2.2. В таком запросе при переходе к итогам
Выбрать 1 А Поместить Т;
Выбрать А Из Т ИТОГИ СУММА(А) ПО ОБЩИЕ
выдает "{Обработка.ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой.Форма.КонструкторЗапроса.Форма(3975)}: Поле объекта не обнаружено (ЦветТекстаНедоступныхКолонок)
ОформлениеСтроки.Ячейки.Имя.ЦветТекста = ЦветаСтиля.ЦветТекстаНедоступныхКолонок;"
Основные доработки последних версий были в консоли запросов и направлены на работу с ADO, альтернативный конструктор запросов, работу с временными таблицами, выгрузкой результата по группировкам итогов в дерево
В демонстрации показано выполнение запроса к источнику данных ADO с последующим помещением результата во временную таблицу 1С и запросом к ней.
в консоли запросов в режиме дерева запросов при отладке пакета запросов, когда позиционируешься на нужной промежуточной временной таблице не получается получить содержимое этой временной таблицы путем выполнения подзапроса, хотя прежде (по крайней мере в 2.82) такое удавалось
Если все же не разберешься, то делай нормальное описание проблемы.
В качастве параметра запроса можно передавать табличную часть объекта, но она, естественно, стандартно не сериализуется, в отличие от ТЗ. Написал на скорую руку заплатку для исправления (ИР2.97, модуль ирОтладка, строка ~617, функция Отладить):
//ИЗМЕНЕНО Сергей (Начало 13.11.2013
ТекЗначениеПараметра = КлючИЗначение.Значение;
Если Лев(Строка(ТипЗнч(ТекЗначениеПараметра)), 24) = "Документ табличная часть" Тогда
ТекЗначениеПараметра = ТекЗначениеПараметра.Выгрузить();
КонецЕсли;
СтруктураЗапроса.Параметры.Вставить(КлючИЗначение.Ключ, ЗначениеВСтрокуВнутр(ТекЗначениеПараметра));
//Окончание 13.11.2013) Сергей
//СтруктураЗапроса.Параметры.Вставить(КлючИЗначение.Ключ, ЗначениеВСтрокуВнутр(КлючИЗначение.Значение));
ПоказатьПодбор и обработка объектов
+Добавлена команда "Заполнить запросом", позволяющая заполнить строки для обработки результатом запроса из консоли запросов
Редактор таблицы значений
+Добавлена команда "Заполнить запросом", позволяющая заполнить редактируемую таблицу значений результатом запроса из консоли запросов
Редактор списка значений
+Добавлена команда "Заполнить запросом", позволяющая заполнить редактируемый список значений результатом запроса из консоли запросов
Редактор массива
+Добавлена команда "Заполнить запросом", позволяющая заполнить редактируемый массив результатом запроса из консоли запросов
Сама разработка кладезь знаний по работе с платформой. очень многое получаю из нее при ежедневной работе.
В консоли запросов не работает стандартная функция конвертации запроса.
Имеется ТабЧасть со следующей структурой: НомерСтроки, Значение.
Тектс запроса: ВЫБРАТЬ ВТ.* ИЗ &ТабЗн КАК ВТ.
Пи переходе в конструктор запроса возникает ошибка.
Стандартная обработка платформы: конвертация запроса в ВЫБРАТЬ ВТ.НомерСтроки,ВТ.Значение ИЗ &ТабЗн КАК ВТ.
Спасибо.
Раньше при вызове в конфигураторе Отладить(....) происходило открытие формы ИР (если мобильные ИР были не запущены), и затем открывалась консоль запросов.
Сейчас если ирМобильный.epf предварительно не был открыт, то запуск консоли не происходит. Можно добавить такую возможность в новую версию плизз...
p.s. про запуск мобильных ИР при старте системы вкурсе.
И хотел еще уточнить есть ли где нибудь видео по использованию консоли запросов ИР ? Консоль используется только в ADO, WQL или для обычных запросов тоже можно сипользовать.
В мобильной версии никаких ограничений нет?
Спасибо.
Проблема с открытием консоли при вызове функции Отладить без открытия базовой обработки понятна. Исправим.
По поводу видео. Видео я записываю для демонстрации новых или неочевидных функций. Записывать видео для той части функционала, которая уже хорошо знакома основной части пользователей в разы менее эффективно.
По консоли запросов. Видимо ты очень мало использовал консоль запросов, раз у тебя нет уверенности, что она ориентирована на запросы 1С. Честно говоря впервые получаю такой вопрос. Конечно консоль запросов ориентирована в первую очередь на запросы 1С.
но уже нашел для себя ответ в
Спасибо.
создается временная табличка, вот ее не видно, видно только сколько в ней строк.
насколько детальней надо описать ? пример запроса привести ? базу с текстом запроса выслать ? что ?
мобильная версия Инструменты разработчика 3.01.2
консоль запросов. тип запрос - построитель
режим "структурного редактирования текста запроса"
берем типовую УТ (можно прям демо базу из поставки с вентиляторами бинатон, у меня релиз 10.3.24.1).
мобильная версия Инструменты разработчика 3.01.2
консоль запросов. тип запрос - построитель
грузим запрос во вложении
режим "структурного редактирования текста запроса"
2й запрос пакета "Создание_врЦены" получаем искомый результат.
Для использования Инструмента выставил в конфигурации "Использовать обычные формы в управляемом приложении". Если просто запустить Предприятие то формы не открываются(Для объекта не определена форма по умолчанию....), а вот если Предприятие запустить через Конфигуратор-Отладка... все инструменты открываются в управляемых формах. Что я делаю не так?
но я теперь понял в какую сторону копать
единственно он у меня не включается, пишет
"Не удалось зарегистривать COM-компоненту GOLDParserEngine.GOLDParser. Возможно требуются права администратора ОС"
Хотя под админом запускаю. Версия 3.04.1. Мобильная версия.
Мобильные инструменты разработчика, версия 3.04.1. При попытке открытия получаем сообщение об ошибке.
Клиент-серверная
MS SQL 2008R2
ирМобильные 3.04.3
Розница 1.0.16.8
Ошибка при открытии ирМобильный.epf
{ВнешняяОбработка.ирОбщий.МодульОбъекта(9073)}: Ошибка при вызове метода контекста (Создать)
Результат = Менеджер.Создать(ПолноеИмяФайла);
по причине:
{ВнешняяОбработка.ирКэш.МодульОбъекта(215)}: Значение не является значением объектного типа (ПолучитьСтрокуСоединенияСервераЛкс)
по причине:
{ВнешняяОбработка.ирКэш.МодульОбъекта(215)}: Значение не является значением объектного типа (ПолучитьСтрокуСоединенияСервераЛкс)
Результат = Менеджер.Создать(ПолноеИмяФайла);
Как воспроизвести: заходим в 1С, открываем ирМобильный.epf, закрываем и пробуем открыть еще раз, получаем вышеописанную ошибку.
Выходим из 1с, открываем ирМобильный.epf - работает, закрываем, снова открываем - опять не работает.
В той обработке исправил копирование описания (настроек отчета СКД) с помощью
Описание = Новый ОписаниеНастроек;Тут проверил - тоже не коприруется описание и в пользовательском режиме появляется настройка отчета СКД с пустым описанием. Также возможно вообще некорректно копируются варианты СКД - вместо типа настройки "Настройки компоновки данных" копирует в тип "Структура". Для воспроизведения в ИР3.05 - "Редактор хранилищ настроек" - "Варианты отчетов" - скопировать другому пользователю.
Текст запроса: Строка 2: {(2,49)}: Синтаксическая ошибка ".", ожидается: '('
хотя в конструкторе запрос открывается и отрабатывает.
Текст части запроса:
"ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона) КАК ДатаТабеля
ПОМЕСТИТЬ ВТ_ДатыТабеля
ИЗ
(ВЫБРАТЬ
aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d КАК НомерДняИзДиапазона
ИЗ
(ВЫБРАТЬ 0 КАК a
ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3
ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6
ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК aa
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b
ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3
ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6
ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК bb
ПО (ИСТИНА)
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c
ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3
ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6
ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК cc
ПО (ИСТИНА)
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК d
ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3
ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6
ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК dd
ПО (ИСТИНА)
ГДЕ
aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)) КАК РазностьДат
СГРУППИРОВАТЬ ПО
ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона)
;
------------------------------------------------------------
Исходные данные
Уровень иерархии_____________Подразделение
1.________________________Администрация
1.1._________________________Служба финансов
1.1.1._________________________Отдел УУ
1.1.2._________________________Отдел НП
1.2._________________________Отдел кадров
2.________________________Цех №1
------------------------------------------------------------
Результат отработки
Уровень иерархии__________|________________Подразделение__________________|
__________________________|____1 ур._____|_______2 ур.________|___3 ур.___|
1.________________________|Администрация_|____________________|___________|
1.1.______________________|Администрация_|___Служба финансов__|___________|
1.1.1.____________________|Администрация_|___Служба финансов__|__Отдел УУ_|
1.1.2.____________________|Администрация_|___Служба финансов__|__Отдел НП_|
1.2.______________________|Администрация_|___Отдел кадров_____|___________|
2.________________________|Цех №1________|____________________|___________|
Т.е. в табличной части под шапкой столбца с иерархическими данными вывести столбцы с номером уровня иерархии и заполнить их. Как вариант отдельным столбцом вывести уровни иерархии в виде аналогичному в примере (1.1.1.)
Это бы очень упростило жизнь при обработке в Еxcel полученной из запросов информации.
Есть отчете СКД на УФ в процедуре модуля отчета ПриКомпоновкеРезультата
при попытке вытянуть запрос в консоль запросов вываливается ошибка (см. прикрепленные файлы).
Это ограничение мобильной версии (3.05.1) или могут быть др. варианты?
Конфигурация работает в толстом клиенте на обычных формах (8.2.18.109). Отчет (см. в файлах) делается на СКД управляемые формы (соотв. отчет вставлен в конфигурацию).
В процедуре "ПриКомпоновкеРезультата" выполняется запрос (с созданием временной таблицы) для заполнения ВнешниеНаборыДанных в СКД.
При попытке вытянуть запрос в консоль запросов (3.05.1) вываливается ошибка .
В файлах текст запроса поменял на выборку "Справочник.СотрудникиОрганизаций". Заметил что если не помещать текст запроса во ВТ, то все норм отрабатывает.
Если можно запросить функционал, то очень бы выручила закладка "После выполнения запроса" в консоли запросов. Можно было бы проводить постобработку результата запроса без написания дополнительных epf.
Не удалось зарегистрировать СOM-компоненту GOLDarserEngine.GOLDParser. Возможно требуются права администратора ОС.
Теперь я не вижу в дереве отрабатываемый запрос, видимо, как раз из-за этой ошибки. У меня админские права на компьютере.
Скажите, как исправить ошибку? При попытке скачивания компоненты, интернет выводит на страницу Майкрософта и предлагает скачать Framework 4.5.
Спасибо!
1. UAC отключен;
2. Да, у коллеги запрос виден по частям в левой части "Дерево запросов";
3. Да, нигде не написано, но если не ставится, ИМХО, может попытаться самому регистрировать компоненты!?
1С загрузил от имена администратора! Это желательно выделить в "администрировании .." жирным, крупным шрифтом! :) Правда, не зарегистрировалась библиотека GameWithFire и ZLib1. Скачал установщик библиотек заново, все зарегистрировалось, хотя пути установки пришлось изменить! Конечно, криво, но пока так! :)
Все таки UAС у тебя включен. Цитирую инструкцию по установке
Решил проблему просто - добавил на форму реквизит "Задержка, с" и в модуль формы
Процедура ЗапуститьСеансПодПользователем <...>
<...>
//------>>
Если ЭтаФорма.ЖдатьДополнительноС > 0 Тогда
Состояние("Ожидание ПОСЛЕ запуска сеанса...");
ВремяВМилисекундах = 1000 * ЭтаФорма.ЖдатьДополнительноС;
Шелл=Новый COMОбъект("WScript.Shell");
Шелл.run("ping -n 1 -w "+Формат(ВремяВМилисекундах,"ЧГ=")+" 0.0.0.1",0,-1);
КонецЕсли;
//<<------
КонецПроцедуры Показать+ на форме поставить галочку "Сообщить командную строку" и если спросит пароль нужно успеть вбить временный пароль из командной строки.
upd: ещё раз проверил, пароль запрашивает при запуске тонкого клиента из под толстого обычного, как с режимом Авто так и с явным указанием запускать тонкого. При запуске обычного не запрашивает. SQL, 8.2.19.68.
ИНАЧЕ 0 КОНЕЦ) КАК УникальностьФ,
СУММА(ВЫБОР КОГДА Пациенты.Имя = &Имя ТОГДА 1
ИНАЧЕ 0 КОНЕЦ) КАК УникальностьИ,
ИЗ Справочник.Пациенты КАК Пациенты" прилепить секцию Итогов... Даже пытался добавить поле для Группировки итогов...
{Форма.КонструкторЗапроса.Форма(1220)}: Не найден терминал "OVERALL" языка запросов
ВызватьИсключение "Не найден терминал """ + Слово + """ языка запросов";
P.S. А зачем генератор секции итогов "оторвали" от генерации первичного запроса?
т.к. используем данный комплекс в управляемом приложении пришлось дописать следующще:
Если СообщитьКоманднуюСтроку Тогда
Если ТекущийРежимЗапуска() = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Тогда
Предупреждение(ПараметрыЗапуска);
Иначе
Сообщить(ПараметрыЗапуска);
КонецЕсли;
КонецЕсли;Имею: ЗУП 2.5.79.4, заполняю регламентированный отчет РегламентированныйОтчетРСВ1, заполняю справочник Объекты для отладки в общем модуле ЗаполнениеРегламентированнойОтчетностиПолныеПрава, функция - ЗначенияПоказателей_РСВ1_2014Кв1, строка 3290
(МассивРезультатов = Запрос.ВыполнитьПакет();
Может, это моя ошибка?
Клиент-серверная
MS SQL 2008R2
ирМобильные 3.05.1
УТ 10.3.13.2
В консоли запросов использую тип запроса "ADO", пишу такой несложный запрос
SELECT TOP 100
_Reference105._IDRRef AS _IDRRef,
DATALENGTH(_Reference105._Fld1172) AS _Fld1172
FR OM
dbo._Reference105 AS _Reference105
ORDER BY DATALENGTH(_Reference105._Fld1172) descЕсли теперь нажать кнопку "Конструктор", происходит информирование об ошибке в строке " DATALENGTH(_Reference105._Fld1172) AS _Fld1172" в область служебных сообщений выводится следующий текст
Текст запроса: Строка 3: {(3,12)}: Синтаксическая ошибка "(", ожидается: (EOF), '-', '##', '#EmbededQuery', '#UnionPart', ')', '*', ',', '.', '.*', '/', ';', '+', AND, AS, ASC, AUTOORDER, AVG, BadID, BEGIN, BEGINOFPERIOD, BETWEEN, 'COMP_OPERATOR', COUNT, DATE, DAY, DAYOFWEEK, DAYOFYEAR, DESC, ELSE, END, ENDOFPERIOD, ESCAPE, FOR, FR OM, FULL, GROUP, HAVING, HIERARCHY, HIERARCHYON, HOUR, id, IN, INDEX, INNER, INTO, IS, ISNULL, JOIN, LEFT, LIKE, MAX, MIN, MINUTE, MONTH, MultiCommentLine, NOT, NUMBER, ON, ONLY, OR, ORDER, PERIODS, PRESENTATION, PRESENTATIONREFS, QUARTER, REFS, RIGHT, SECOND, SELECT, STRING, SUBSTRING, SUM, TABLE, THEN, TOTALS, TYPE, UNION, VALUE, VALUETYPE, WEEK, WHEN, WH ERE, WITH, YEARMS SQL 2012
Конфигурация на базе УПП 1.3.51.1
Инструменты разработчика 3.06 встроены в конфигурацию. При запуске конфигурации у пользователей, имеющих роль Пользователь (ИР), интерфейс Инструменты разработчика выводится в виде текстовых меток и иконок. Работают только иконки.
Если текстовые метки удалить, после очистки кэша они опять появляются. Очень неудобно.
Конструктор запросов выше всяких похвал (несмотря на возросшую длительность открытия запроса), вот по нему есть пару предложений:
1. добавить стандартную возможность отбора в табличной части (часто пользовался этой функцией в конструкторе запросов, которым пользовался до ИР)
2. добавить возможность просмотра временных таблиц.
Раньше использовал 2.79 бывало раз день приходилось сессию убивать, а тут прям через 5 минут калапс))
1С 8.2.19.76
клиент-серверная УПП
обработка "Подбор и обработка объектов"
Выбираю элементы спр.ОсновныеСредства по родителю.
На закладке "Строки для обработки" нажимаю кнопку "Заполнить результатом выполнения запроса в консоли запросов"
В консоли запросов добавляю РС:ПервоначальныеСведенияОСБухУчет и вывожу ИнвентарныйНомер в таблицу
Выполняю запрос в консоли запросов и закрываю консоль запросов. Появляется вопрос "Хотите заполнить коллекцию полученным результатом?" говорю "Да" - список не меняется.
Что я делаю не так?
Сразу родились хотелки:
1. Было бы удобно самому выбирать что тестировать, а что нет. А то разработал новый документ, хочу только его тестировать, а приходится всё гонять.
2. Хочется указывать дату, начиная с которой выбирались бы документы для теста. Включена дата запрета редактирования, из-за этого документ не проводится. Или документ может быть старый без какого-нибудь нового обязательного реквизита.
Добавлено:
Начал формы тестировать. Словил ошибку "При проверке заполненности произошли ошибки". И кнопки "Завершить" и "Перезапустить". Тест на этом обрывается. Никаких записей в ЖР нет про это. Опять родилась хотелка - чтоб писался лог. Опционально. Такой лог, чтоб прочитать можно было в случае аварии типа этой. Во внешний файл, например, или в тот же ЖР.
В принципе можно ТЖ настроить, но лог удобней был бы.
Это немного другой инструмент, но сделали на базе ИР.
открытие формы существующего документа
открытие формы нового, еще не записанного документа
поиск существующего документа, перенос его даты на текущий день и открытие его формы.
Эти тесты будут предлагаться группам разработки/поддержки/релиз-менеджмента при выпуске новых версий конфигураций, релизов, текущей разработки и т.п.
Т.к. тесты универсальны, можно их юзать в любых без предварительной настройки.
В итоге мы получим проверку наших конфигураций под различными правами и повысим надежность конфигурации.
Что не так делаю?
//
Загрузился в обычном приложении, все прошло без ошибок. Но хотелось бы знать, ошибка возникла из-за использования управляемого интерфейса?
Способ воспроизведения:
1. Разворачиваем новую базу ИР (3.06, файловая, 8.2.19.68)
2. Добавляем в конфигураторе новый план видов характеристик ПВХ1, создаём у него предопределенный элемент Имя1
3. Добавляем общий серверный модуль ОМ1, в нём функция
Функция Тест(П) Экспорт
Если П = ПланыВидовХарактеристик.ПВХ1.Имя1 Тогда
Возврат 1111;
Иначе
Возврат 2222;
КонецЕсли;
КонецФункции4. Далее в предприятии в консоли СКД добавляем отчет, в конструкторе запрос
Выбрать &Параметр1 КАК А
ОМ1.Тест(Значение(ПланВидовХарактеристик.ПВХ1.Имя1)))5. Далее в консоли СКД - вычисляемые поля - Поле1 - редактировать - возникает ошибка
При вычислении выражения компоновки данных, содержащего внутри скобок вызов функции Значение() с аргументом, обращающимся к несуществующим метаданным, происходит вызов исключения без возможности продолжить работу.
Воспроизведение:
1. Создаём новую серверную базу ИР 3.07.
2. Добавляем серверный модуль с процедурой
Процедура Тест() Экспорт
НачатьТранзакцию();
Запрос = Новый Запрос("Выбрать 1");
От(Запрос);
ЗафиксироватьТранзакцию();
КонецПроцедуры3. Вызываем эту процедуру, получаем ошибку
ФоновоеЗадание = ФоновыеЗадания.Выполнить("ЗаписатьОбъектДляОтладкиЛкс", Параметры);
по причине:
Недопустимое значение параметра (параметр номер '1') (ЗаписатьОбъектДляОтладкиЛкс)
Инструменты разработчика МОБИЛЬНЫЕ 3.07.2, 1С 8.2.13 файловый
1. открываем консоль запросов. набираем текст запроса.
2. Нажимаем кнопку "Сравнить текст с предыдущим переданным для сравнения"
3. Меняем текст запроса.
4. Нажимаем кнопку "Сравнить текст с предыдущим переданным для сравнения"/
5. Ожидал увидеть окно сравнения текста запроса, но мне вообще ничего не показывает. Даже не выводит вопрос "Сравнить с предыдущим".
насколько я понял проблема в ирОбщий.epf в Процедура СравнитьСодержимоеЭлементаУправленияЛкс
Процедура СравнитьСодержимоеЭлементаУправленияЛкс(МассивИлиКлючСравнения, ЭлементУправления) Экспорт
Если ТипЗнч(МассивИлиКлючСравнения) <> Тип("Массив") Тогда
МассивСравнения = ирКэш.ПолучитьБуферСравненияЛкс(МассивИлиКлючСравнения);
КонецЕсли;
в процедуру передается переменная "МассивИлиКлючСравнения", но вся дальнейшая работа идет с МассивСравнения
Нет планов добавить редактор заданий? Поясню, у меня много кода, который запускается по подписке или периодически. Когда я перешел на вашу разработку, то этот код я стал писать в "Алгоритмах". Однако, чтобы сделать его заданием, приходится делать по-старому и копировать методы в конфигуратор. Было бы круто одной кнопкой добавлять задание и иметь возможность их редактирования в режиме предприятия (так например сделан обмен с сайтом битрикс в типовой).
Problem signature:
Problem Event Name: BEX
Application Name: 1cv8.exe
Application Version: 8.2.19.83
Application Timestamp: 52aea6ce
Fault Module Name: StackHash_0a9e
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Offset: 89ff3357
Exception Code: c0000005
Exception Data: 00000008
OS Version: 6.1.7601.2.1.0.274.10
Locale ID: 1049
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Read our privacy statement online:
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
С помощью отладчика пытался понять из-за чего возникает ошибка, но докопаться до истины не смог.
Как правило обморок наступает в процедуре мПеречитатьДанные() при вызове ЗаполнитьСтрокуТзРеквизиты(...
При этом может умереть на любом поле (криминала не нашел, бывает даже на простых полях типа число или строка).
при пошаговой отладке процедуры ЗаполнитьСтрокуТзРеквизиты( все проходит без ошибок...
Консоль запросов. +В дереве запроса показываются индексы запросов пакета
Поиск дублей и замена ссылок. +Добавлена возможность выгружать из нее и загружать в нее через файл настройки (группы дублей, настройки отбора и ценности, правила замены ссылок)
Конструктор запроса. +В отделяющий запросы пакета комментарий теперь вставляется индекс запроса в пакете
Консоль заданий. +Реализовано вычисление предполагаемых номеров сеансов и соединений активных заданий
Анализ техножурнала. *Решены проблемы с вычислением длительности событий как в логах 8.2, так и в логах 8.3 (ранее исправлялся только один из вариантов)
Общее
*"Редактор изменений на узле" переименован в "Редактор изменений по плану обмена"
Редактор объекта БД
+Добавлена поддержка работы с наборами записей и константами в качестве основного объекта
Редактор изменений по плану обмена
+Добавлена возможность работы со списком выбранных узлов, включающим количество изменений, одного плана обмена
+В дереве состава плана обмена включено множественное выделение, которое поддерживается командами добавления/удаления регистрации изменений
Подбор и обработка объектов
*Исправлено заполнение колонки "Результат обработки"
приходится каждый раз при обработке объектов из дин.списка щелкать "будет использован текущий отбор (нет)"? :D
Поиск дублей и замена ссылок
+Добавлена настройка "Автоматически выбор при замещении в регистре сведений" для подавления диалога настройки замещения в независимых регистрах сведений
+В списке групп дублей добавлена колонка "Количество ссылок (Количество объектов с неправильными элементами)"
Редактор пользователей
+В форме пользователя добавлена возможность просмотра только включенных ролей
Редактор изменений по плану обмена
+Теперь при включенном вычислении количества изменений в список узлов попадают и отсутстствующие в плане обмена узлы, по которым есть строки
Консоль компоновки данных
*Исправлена невозможность открытия формы с некорректной схемой компоновки в качестве параметра
Редактор объекта БД
+Добавлена возможность создавать группу
Консоль компоновки данных
*Улучшен анализ модифицированности сохраняемых данных
Редактор изменений по плану обмена
*Исправлена ошибки
Конструктор запроса
+Реализовано переименование параметров
Анализ техножурнала
+Добавлена страница итогов по типу исключения
Контекстная подсказка
+В режиме языка запросов добавлена поддержка таблиц Константа.<Имя константы> и внешних источников данных
ВЫБРАТЬ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)при попытке переключиться в режим структурного редактирования ошибка
Текст запроса: Строка 1: {(1,46)}: Синтаксическая ошибка ")", ожидается: '.'
Хочу уточниться по функции ирСервер.ПолучитьСтрокуСоединенияСервераЛкс(). Если я правильно понимаю это способ получения данных контекста фоновых заданий?
И небольшая заметка. В консоли заданий поначалу вызвало вопросы появление в списке задания с наименованием "<Для отбора фоновых заданий запущенных из кода>" с методом "ирСервер.ПоместитьСтрокуСоединенияВХранилищеЛкс". Потом выяснил что конкретно у меня это вызвано автообновлением списка регламентных заданий. Думаю чтобы не напрягать людей и чтобы они не тратили время на выяснение причин появления этого "регламентного задания" логично либо объяснение воткнуть на форму либо не помещать в список заданий.
А вот по поводу функции ирСервер.ПолучитьСтрокуСоединенияСервераЛкс(). Такое ощущение что кто-то либо не понимает ее суть либо увидел не знакомые слова либо не смог связать суть функции и эти не знакомые слова :) .
Думаю проблема в том, что в ваших конфигурациях есть роли, в которых (скорее всего по ошибке) установлен признак "Устанавливать права для новых объектов". Это приводит к тому, что после первого объединения с подсистемой ИР все такие роли получают все разрешения на объекты подсистемы, включая право "Использование" для интерфейса ирРазработчик. Тут с моей стороны, как поставщика подсистемы ничего сделать к сожалению нельзя.
ир = Метаданные.Интерфейсы.ирРазработчик;
роли = Метаданные.Роли;
для каждого роль из роли Цикл
Если ПравоДоступа("Использование", ир, роль) Тогда
Сообщить(роль);
КонецЕсли;
КонецЦикла;
в консоли кода (ИР)
получил:
Полные права
Разработчик (ИР)
Очень неприятно, никаких вопросов о завершении работы не задается, система тупо перегружается, ничего не записывается.
Ошибка нечасто возникала, но раза 3 в течение 2 дней.
Толстый клиент упр.приложение, 8.3.4.408, Вин 8.0 64, локальный админ (но 1С запускалась без доп.режима админа), контроль учетных записей включен на минимуме.
Консоль запросов
+Добавлена закладка с таблицей временных таблиц
+Для режима ADO реализована поддержка передачи неименованных параметров (MSSQL, VisualFoxPro), при которой в таблице параметров отображается индекс
Подбор и обработка объектов
+Добавлена возможность наложения фильтра по наличию регистрации изменений на узле плана обмена
+В обработке "Изменить регистрацию для узла" добавлен флажок "Вместе с движениями"
+Добавлена обработка "Выгрузка в файл", позволяющая выгружать объекты в файл в формате инструмента "Выгрузка/загрузка данных через файл"
Редактор изменений по плану обмена
+Добавлена команда "Выгрузка" для открытия инструмента "Выгрузка/загрузка данных через файл" для выгрузки по текущему узлу
+Добавлен инструмент "Выгрузка/загрузка данных через файл"
Добавлены свойства, отображающие:
Report - имя объекта метаданных выполняемого отчета;
Method - имя вызванного метода;
SessionID - номер сеанса;
Memory - объем памяти в байтах, занятой, но не освобожденной за вызов;
MemoryPeak - объем памяти в байтах, занятой, но не освобожденной за вызов. Пиковое значение;
InBytes - количество прочитанных за вызов данных с диска, в байтах;
OutBytes - количество записанных за вызов данных с диска, в байтах;
Context - контекст события.
Хотелось бы, чтоб все эти свойства были виды в анализе.
Там же есть информация о событии SRVC, про которе ты на партнерском спрашивал.
Вообще по фразе "технологическ" там еще инфа есть.
С визуализацией макетов областей мне кажется существенно уже ничего не сделать, можно только предусматривать и обходить исключительные ситуации, а они есть. Например
Эту жеж колонку можно скрыть по-умолчанию.
Ну, хотя бы настройку открывать дерево запросов свернутым.
Как вариант, дату последнего изменения запроса можно писать, пере-до-записывая имя родительского элемента (папки), типа "20141021 09:02 Сводная вед. затрат по НУ"
А баллонов у строк табличного поля не бывает?...
Для себя пока вот так сделал:
МакетКомпоновкиДанных = ПолучитьМакетКомпоновки();
Если МакетКомпоновкиДанных = Неопределено Тогда
Возврат;
КонецЕсли;
ТаблицаЭлементов = Новый ТаблицаЗначений;
ТаблицаЭлементов.Колонки.Добавить("ЗначенияПараметров");
ТаблицаЭлементов.Колонки.Добавить("Макет");
ТаблицаЭлементов.Колонки.Добавить("Макеты");
ТаблицаЭлементов.Колонки.Добавить("ПроцентВывода");
ТаблицаЭлементов.Колонки.Добавить("РасположениеВложенныхЭлементов");
ТаблицаЭлементов.Колонки.Добавить("ТипЭлемента");
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, мВнешниеНаборыДанных, ДанныеРасшифровкиКонсоли, Истина);
Пока Истина Цикл
ОбработкаПрерыванияПользователя();
ЭлементРезультатаКомпоновкиДанных = ПроцессорКомпоновкиДанных.Следующий();
Если ЭлементРезультатаКомпоновкиДанных = Неопределено Тогда
Прервать;
КонецЕсли;
СтрокаТаблицыЭлементов = ТаблицаЭлементов.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыЭлементов, ЭлементРезультатаКомпоновкиДанных);
КонецЦикла;
ирОбщий.ИсследоватьЛкс(ТаблицаЭлементов, Ложь, Истина);
ПоказатьВ качестве примера хочу показать отчет по текущим выполняющимся запросам MSSQL с указанием ожиданий блокировок, базы, пользователя и сеанса 1С и с переводом текста запроса в термины метаданных. При расшифровке ячейки с текстом запроса БД открывается конвертор текста БД в метаданные аналогичный конвертору из инструмента "Анализ техножурнала ". В этом конверторе уже выполняется расширенное преобразование текста запроса в понятный конструктору запроса (ИР) вид. В итоге вы получаете переведенный в термины метаданных красиво отформатированный текст запроса и изучаете его в структурном режиме консоли запросов (ИР).
В последний день начавшейся конференции Инфостарт Евент 2014 наш директор Харитонов Михаил в своем докладе осветит и другие возможности, где на помощь пользователю продукта приходит подсистема ИР. Я буду присутствовать на конференции 2 дня: 30-31. Вместе С Михаилом мы будем раздавать ограниченное количество подарочных программных ключей на наш продукт. И конечно мы сможем пообщаться с вами по самой подсистеме "Инструменты разработчика".
ПараметрСхемы = СхемаКомпоновкиДанных.Параметры.Найти("" + ЗначениеПараметра.Параметр);
1. Пустая база ИР 3.19 (8.2.19.68 файловая), открываем консоль СКД пустую
2. Есть пустой "Отчет" в дереве, создаём подчинённый "Отчет1"
3. В "Отчёт1" в конструкторе СКД добавляем параметр "Параметр1", сохраняем
4. В дереве отчетов консоли СКД переходим с "Отчет1" на "Отчет" (текущая строка), получаем ошибку
ПараметрСхемы = СхемаКомпоновкиДанных.Параметры.Найти("" + ЗначениеПараметра.Параметр);
Отличный набор обработок.
Предлагаю свои 5 копеек.
В обработке "Поиск дублей и замена ссылок" на закладке "Зависимые элементы" формы "Форма" в таблице значений "НайденныеЗависимыеСсылки" я добавил колонку "Пометка", Добавил кнопку "Оставить пометки только у заменяемых".
После нажатия кнопки "Выполнить замену" обрабатываются только строки с установленным флагом "Пометка".
Кнопка "Оставить пометки только у заменяемых" действует следующим образом:
пробегает по таблице значений "Найденные ссылки", смотрит есть ли пометка, и у помеченных элементов для замены оставляет флажок в таблице "НайденныеЗависимыеСсылки".
Это мне понадобилось когда нужно было переносить не все ссылки с одного элемента на другой, а частично.
Отличные инструменты, но есть некоторые вопросы по функциональности.
1) как изменить пометки в обработке "Поиск дублей и замена ссылок (ИР)" для строк табличной части "НайденныеСсылки" по определенному алгоритму? Например, метод НайтиПоСсылкам() вернул все ссылки, где есть различные типы метаданных. Мне необходимо установить пометки среди этих ссылок на документы типа "РеализацияТоваровУслуг", в которых реквизит "Организация" принимает значение "Рога и копыта" из справочника "Организации".
2) ранее я всегда пользовался только портативной версией инструментов, а теперь решил интегрировать на конкретной базе. Вызвало удивление то, что в поставке ИР "из коробки" отсутствует возможность запускать алгоритмы из справочника "Алгоритмы" по расписанию. Планируется ли добавить такую возможность?
1. По алгоритму возможности нет, но там есть дополнительные поля, в которые можно вывести организацию, отобрать по ней строки таблицы с помощью отбора и снять/установить пометки по отобранным строкам.
2. В рабочем режиме выполнять код через Выполнить() не рекомендуется, т.к. будет ухудшение прозрачности кода для отладки, замера производительности, сбора техножурнала и т.д. Поэтому алгоритмы нацелены на промежуточную стадию разработки кода. Для запуска произвольного кода извне базы без изменения ее конфигурации по расписанию, минуя все эти проблемы, в нашем продукте 2iS:Интеграция ( реализованы специальные механизмы. Развивать это направление в подсистеме не планируется.
Единственное небольшое пожелание - в параметрах СКД можно указывать ссылки на другие параметры, например
&ПериодОтчета.ДатаНачалаПараметры.ПериодОтчета.ДатаНачала{ОбщийМодуль.ирОбщий.Модуль(42)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(4,12)}: Ожидается выражение
1. Поиск дублей и замена ссылок:
- возможность многопоточной обработки данных (в принципе, можно сделать универсальный механизм, чтобы использовать и в обработке подбора и обработки объектов)
- замена всех заменяемых значений в одном объекте за один проход (часто бывает, заменяемые значения встречаются в одних и тех же объектах, поэтому оптимальнее будет один раз заменить все значения в объекте и записать его только 1 раз)
2. Консоль запросов и поиск дублей:
- было бы неплохо иметь возможность ограничивать область поиска дублей не только отборами компоновки, но и произвольной выборкой. Например, с помощью консоли запросов получить нужную выборку, а при нажатии соответсвующей кнопки будет открываться окно поиска дублей и замены ссылок с отбором "Ссылка в списке <наша выборка>"
1) Многопоточный код на платформе 1С сейчас очень сложно отлаживать, поэтому пока ситуация не изменится, я не буду писать такой код.
Пожелание "замена всех заменяемых значений в одном объекте за один проход" у меня уже давно записано, но скорее всего не будет реализовано, т.к. оно сильно усложнит код и ухудшит гранулярность замен.
2) уже вроде бы давно сделан - из консоли запросов и консоли компоновки можно передавать выделенные строки результата в этот поиск дублей и замену ссылок.
А про вызов обработки поиска дублей и замены ссылок - да, это есть, но не так, как я предложил. На текущий момент при нажатии на кнопку "Поиск дублей и замена ссылок" выделенные элементы помещаются в одну группу замены: <quote>Открывает форму поиска дублей и замены ссылок. Создает группу дублей по текущей колонке. Первый элемент считается правильными данными. Тип ссылок берется от первого элемента</quote>
Это, безусловно, полезная функция, но мне хотелось бы дополнительно иметь возможность поиска дублей среди выборки, полученной произвольным запросом.
Вот у меня стоит задача найти дубли среди контрагентов, но не всех подряд, а только, например, тех, по которым были обороты за последние два года. Напрашивается такой вариант: получить выборку с помощью консоли запросов или компоновок, и эту выборку передать в обработку поиска дублей. По аналогии, как это делается с обработкой подбора и обработки объектов
Есть конечно ошибки, но я думаю, может мне необходимо какие настройки произвести или что-то действительно не работает нужном порядке.
Ошибку выдает при открытии "Исследователь объектов (ИР)":
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(229,80)}: Переменная не определена (СоответствиеСертификатаИПароля)
МассивСоглашений, МассивЭД, СтМассивовСтруктурСертификатов, , Ложь, Истина, <<?>>СоответствиеСертификатаИПароля);
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(610,14)}: Переменная не определена (СоответствиеСертификатаИПароля)
Если ТипЗнч(<<?>>СоответствиеСертификатаИПароля) = Тип("ФиксированноеСоответствие") Тогда
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(611,26)}: Переменная не определена (СоответствиеСертификатаИПароля)
Для Каждого Элемент Из <<?>>СоответствиеСертификатаИПароля Цикл
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(634,14)}: Переменная не определена (СоответствиеСертификатаИПароля)
Если ТипЗнч(<<?>>СоответствиеСертификатаИПароля) = Тип("ФиксированноеСоответствие") Тогда
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(635,24)}: Переменная не определена (СоответствиеСертификатаИПароля)
ПарольПользователя = <<?>>СоответствиеСертификатаИПароля.Получить(СертификатЭП);
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(649,14)}: Переменная не определена (СоответствиеСертификатаИПароля)
Если ТипЗнч(<<?>>СоответствиеСертификатаИПароля) = Тип("ФиксированноеСоответствие")
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(650,5)}: Переменная не определена (СоответствиеСертификатаИПароля)
И <<?>>СоответствиеСертификатаИПароля.Получить(СертификатЭП) <> Неопределено Тогда
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(652,26)}: Переменная не определена (СоответствиеСертификатаИПароля)
Для Каждого Элемент Из <<?>>СоответствиеСертификатаИПароля Цикл
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(1304,26)}: Переменная не определена (СоответствиеСертификатаИПароля)
<<?>>СоответствиеСертификатаИПароля);
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(1317,22)}: Переменная не определена (СоответствиеСертификатаИПароля)
<<?>>СоответствиеСертификатаИПароля);
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(4940,25)}: Переменная не определена (СоответствиеСертификатаИПароля)
Если ЗначениеЗаполнено(<<?>>СоответствиеСертификатаИПароля) Тогда
{ОбщийМодуль.ЭлектронныеДокументыСлужебныйКлиент.Модуль(4941,23)}: Переменная не определена (СоответствиеСертификатаИПароля)
ДанныеАвторизации = <<?>>СоответствиеСертификатаИПароля.Получить(СоглашениеЭД); ПоказатьБыли еще кое-какие ошибки, но к сожалению я не зафиксировал их. Возникнут отпишусь).
В данный момент изучаю данный комплекс методом "Тыка". Хотелось бы более подробного описания.
Обнаружил проблему с запуском обработки устранения Дублей, не открывается Форма.
{ВнешняяОбработка.ирПоискДублейИЗаменаСсылок.Форма.Форма.Форма(1379)}: // Для подчиненных справочников ищем дубли только внутри одинаковых владельцев
Если Истина
И мКорневойТипОбъекта = "Справочник"
И мМетаданныеОбъекта.Владельцы.Количество() > 0
Тогда
ирОбщий.НайтиДобавитьЭлементНастроекКомпоновкиПоПолюЛкс(КомпоновщикСравнения.Настройки.Порядок.Элементы, "Владелец");
КонецЕсли;
Обрабатывается табличная часть "АвтоподборНоменклатуры" в справочнике "СпецификацииНоменклатуры" (мМетаданныеОбъекта.Имя="АвтоподборНоменклатуры")
Свойство Значение
ПолноеИмяОбъекта "Справочник.СпецификацииНоменклатуры.АвтоподборНоменклатуры"...
Вероятно последний раз пытался сворачивать Спецификации по совпадению строк табличной части...
Надо бы сделать "безопасным восстановление значения" (Метаданные с последнего запуска могли измениться), при неудаче отказаться от восстановленных настроек поиска.
Добавить аутентификацию на удаленном компе и убрать строчку Locator = Новый COMОбъект("WbemScripting.SWbemLocator", ИмяСервераИсполнителя);
// objwbemServices = .ConnectServer( _
// [ ByVal strServer ], _
// [ ByVal strNamespace ], _
// [ ByVal strUser ], _
// [ ByVal strPassword ], _
// [ ByVal strLocale ], _
// [ ByVal strAuthority ], _
// [ ByVal iSecurityFlags ], _
// [ ByVal objwbemNamedValueSet ] _
//)
Если требуется "слить" остатки и движения по номенклатуре "Яблоки "голд"" и "Яблоко Голд" и первую пометить на удаление, используем обработку "Поиск дублей и замена ссылок (ИР)". Все отлично "переносится".
Но, если подобная ситуация возникает по договору, который "был не у того контрагента", тогда:
- создаем копированием новый договор и ставим ему владельцем правильного контрагента
- помечаем старый договор на удаление
- делаем замену ссылок со старого договора на новый
... в документах расчетов остается старый контрагент.
Как правильно решается эта задача?
процедуру ОбновитьТаблицу() обработка ИРПлатформа форма "АдминистративнаяРегистрацияCOM", чтобы она сразу регистрировалась со всем компонентами?
СтрокаКомпоненты = ТаблицаCOMКомпонент.Добавить();
СтрокаКомпоненты.Идентификатор = "DynamicWrapperX";
СтрокаКомпоненты.ProgID = "DynamicWrapperX";
СтрокаКомпоненты.ЗависящаяФункцияПодсистемы = "Библиотека функций для работы с WinAPI ";
Просьба не использовать сокращение МИР, т.к. во-первых оно опирается на устаревшее название и во-вторых может быть непонятно большому числу читателей.
Вывод: Во всем виновата DynamicWrapperX.
Пожалуйста поясните, что значит
DynamicWrapperX я тоже скачал и в системе зарегистрировал, а дальше что регистрировать?
Сейчас ошибка "Несоответствие типа: 'Wrap.NumGet'"
Самое интересное, что коду это не мешает.
ФормаРедактирования = ПолучитьФорму("ФормаРедактированияЗапроса", ЭтаФорма, СтруктураПараметров);
по причине:
Ошибка инициализации модуля: Форма.ФормаРедактированияЗапроса.Форма
по причине:
{ВнешняяОбработка.ирПортативный.МодульОбъекта(780)}: Поле объекта не обнаружено (ПолеТекстовогоДокументаСКонтекстнойПодсказкой_ТекстЗапроса_К
ФормаРедактирования = ПолучитьФорму("ФормаРедактированияЗапроса", ЭтаФорма, СтруктураПараметров);
3.25 Основные изменения:
Анализ техножурнала
+Для события TLOCK реализована собственная форма, позволяющая детально анализировать ожидания блокировок
+В панели итогов добавлены закладки "Тексты СУБД" и "Блокировки упр."
- обновленные скриншоты и по форме просмотра плана запроса MSSQL
- новый скриншот новой формы просмотра события управляемой блокировки
- новый скриншот нового инструмента "Удаление объектов с контролем ссылок"
"{ВнешняяОбработка.ирОбщий.МодульОбъекта(10232)}: Значение не является значением объектного типа (Получить)
ирПлатформа = ирКэш.Получить();"
"{ВнешняяОбработка.ирОбщий.МодульОбъекта(14270)}: Значение не является значением объектного типа (ЛиПортативныйРежимЛкс)
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда"Такая ошибка возникает, если была открыта какая-нибудь обработка из подсистемы
Пожелание улучшить процесс закрытия всех форм в портативном варианте записал.
УТ 10.3.30.1
1С 8.3.5.1248, серверная x86
В консоли запроса при подборе (по кнопке "Подбор") в установке параметров запроса вместо добавления выбранного значения подбирается пустое значение выбранного типа.
Скриншот:
Функция ПолучитьКодПолученияРезультатаЗапроса(ПеременнаяЗапрос = "мОбъектЗапроса", ПеременнаяРезультатЗапроса = "РезультатЗапроса")
ПолучитьРезультирующийЗапрос(мОбъектЗапроса);
ТекстЗапроса = ирОбщий.ПолучитьСтроковыйЛитералИзМногострочногоТекстаЛкс(мОбъектЗапроса.Текст);
Если ТипЗнч(мРезультатЗапроса) = Тип("РезультатЗапроса") Тогда
ТекстМодуля = ПеременнаяЗапрос + " = Новый Запрос;
|" + ПеременнаяЗапрос + ".Текст = " + ТекстЗапроса + ";";
Для Каждого СтрокаПараметра Из Параметры Цикл
Если СтрокаПараметра.ЭтоВыражение = 1 Тогда
ТекстЗначения = "" + СтрокаПараметра.Значение;
ПредставлениеЗначения = "";
Иначе
Если ТипЗнч(СтрокаПараметра.Значение) = Тип("Массив") Тогда
ТекстМодуля = ТекстМодуля + "
|" + СтрокаПараметра.ИмяПараметра + " = Новый Массив;";
Для Каждого Эл Из СтрокаПараметра.Значение Цикл
ТекстМодуля = ТекстМодуля + "
|" + СтрокаПараметра.ИмяПараметра + ".Добавить(" + Эл + ");" + "// <" + ТипЗнч(Эл) + ">[" + Эл + "]";
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Эл)) Тогда
Если Эл.Метаданные().ДлинаНаименования > 0 Тогда
ТекстМодуля = ТекстМодуля + " Справочники." + Эл.Метаданные().Имя + ".НайтиПоНаименованию(""" + Эл.Наименование + """);";
Иначе
ТекстМодуля = ТекстМодуля + " Справочники." + Эл.Метаданные().Имя + ".НайтиПоКоду(""" + Эл.Код + """);";
КонецЕсли;
ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипЗнч(Эл)) Тогда
Если Эл.Метаданные().ДлинаНаименования > 0 Тогда
ТекстМодуля = ТекстМодуля + " ПланыВидовХарактеристик." + Эл.Метаданные().Имя + ".НайтиПоНаименованию(""" + Эл.Наименование + """);";
Иначе
ТекстМодуля = ТекстМодуля + " ПланыВидовХарактеристик." + Эл.Метаданные().Имя + ".НайтиПоКоду(""" + Эл.Код + """);";
КонецЕсли;
КонецЕсли;
КонецЦикла;
ИначеЕсли ТипЗнч(СтрокаПараметра.Значение) = Тип("СписокЗначений") Тогда
ТекстМодуля = ТекстМодуля + "
|" + СтрокаПараметра.ИмяПараметра + " = Новый СписокЗначений;";
Для Каждого ЭлСписка Из СтрокаПараметра.Значение Цикл
Эл = ЭлСписка.Значение;
ТекстМодуля = ТекстМодуля + "
|" + СтрокаПараметра.ИмяПараметра + ".Добавить(" + Эл + ");" + "// <" + ТипЗнч(Эл) + ">[" + Эл + "]";
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Эл)) Тогда
Если Эл.Метаданные().ДлинаНаименования > 0 Тогда
ТекстМодуля = ТекстМодуля + " Справочники." + Эл.Метаданные().Имя + ".НайтиПоНаименованию(""" + Эл.Наименование + """);";
Иначе
ТекстМодуля = ТекстМодуля + " Справочники." + Эл.Метаданные().Имя + ".НайтиПоКоду(""" + Эл.Код + """);";
КонецЕсли;
ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипЗнч(Эл)) Тогда
Если Эл.Метаданные().ДлинаНаименования > 0 Тогда
ТекстМодуля = ТекстМодуля + " ПланыВидовХарактеристик." + Эл.Метаданные().Имя + ".НайтиПоНаименованию(""" + Эл.Наименование + """);";
Иначе
ТекстМодуля = ТекстМодуля + " ПланыВидовХарактеристик." + Эл.Метаданные().Имя + ".НайтиПоКоду(""" + Эл.Код + """);";
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ТекстЗначения = "" + СтрокаПараметра.ИмяПараметра;
ПредставлениеЗначения = "<" + ТипЗнч(СтрокаПараметра.Значение) + ">[" + СтрокаПараметра.Значение + "]";
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СтрокаПараметра.Значение)) Тогда
Если СтрокаПараметра.Значение.Метаданные().ДлинаНаименования > 0 Тогда
ПредставлениеЗначения = ПредставлениеЗначения + " Справочники." + СтрокаПараметра.Значение.Метаданные().Имя + ".НайтиПоНаименованию(""" + СтрокаПараметра.Значение.Наименование + """);";
Иначе
ПредставлениеЗначения = ПредставлениеЗначения + " Справочники." + СтрокаПараметра.Значение.Метаданные().Имя + ".НайтиПоКоду(""" + СтрокаПараметра.Значение.Код + """);";
КонецЕсли;
ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипЗнч(СтрокаПараметра.Значение)) Тогда
Если СтрокаПараметра.Значение.Метаданные().ДлинаНаименования > 0 Тогда
ПредставлениеЗначения = ПредставлениеЗначения + " ПланыВидовХарактеристик." + СтрокаПараметра.Значение.Метаданные().Имя + ".НайтиПоНаименованию(""" + СтрокаПараметра.Значение.Наименование + """);";
Иначе
ПредставлениеЗначения = ПредставлениеЗначения + " ПланыВидовХарактеристик." + СтрокаПараметра.Значение.Метаданные().Имя + ".НайтиПоКоду(""" + СтрокаПараметра.Значение.Код + """);";
КонецЕсли;
КонецЕсли;
КонецЕсли;
ТекстМодуля = ТекстМодуля + "
|" + ПеременнаяЗапрос + ".Параметры.Вставить(""" + СтрокаПараметра.ИмяПараметра + """, " + ТекстЗначения + "); // " + ПредставлениеЗначения;
КонецЦикла;
Иначе
ТекстМодуля = "ЛокаторWMI = Новый COMОбъект(""WbemScripting.SWbemLocator"");
|" + ПеременнаяЗапрос + " = ЛокаторWMI.ConnectServer(""."", , , , ТекущийЯзыкСистемы());";
КонецЕсли;
ТекстПередВыполнением = ЭлементыФормы.КодПередВыполнениемЗапроса.ПолучитьТекст();
Если Не ПустаяСтрока(ТекстПередВыполнением) Тогда
ТекстМодуля = ТекстМодуля + "
|Параметры = " + ПеременнаяЗапрос + ".Параметры;
|// Обработчик перед выполнением НАЧАЛО
|" + ЭлементыФормы.КодПередВыполнениемЗапроса.ПолучитьТекст() + "
|// Обработчик перед выполнением КОНЕЦ";
КонецЕсли;
Если ТипЗнч(мРезультатЗапроса) = Тип("РезультатЗапроса") Тогда
ТекстМодуля = ТекстМодуля + "
|" + ПеременнаяРезультатЗапроса + " = " + ПеременнаяЗапрос + ".Выполнить();";
Иначе
ТекстМодуля = ТекстМодуля + "
|" + ПеременнаяРезультатЗапроса + " = " + ПеременнаяЗапрос + ".ExecQuery(" + ТекстЗапроса + ");";
КонецЕсли;
Возврат ТекстМодуля;
КонецФункции ПоказатьВ автоматическом формировании текста модуля на основе запроса добавил
а) Для параметров типа Справочник и ПланВидовХарактеристик в комментарии к строкам вида Запрос.Параметры.Вставить(...,...) дописывается Справочники.[ВидСправочника].НайтиПоНаименованию (НайтиПоКоду если длина наименования нулевая)
б) Для параметров типа Массив и СписокЗначений создается новый объект и в него добавляются элементы (при этом для Справочников и ПВХ справедлив пункт а) )
То есть получается что-то вроде
мОбъектЗапроса = Новый Запрос;
мОбъектЗапроса.Текст = "
|ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ(&Номенклатура)";
Номенклатура = Новый Массив;
Номенклатура.Добавить(Ном1);// <Номенклатура>[Ном1] Справочники.Номенклатура.НайтиПоНаименованию("Ном1");
Номенклатура.Добавить(Ном2);// <Номенклатура>[Ном2] Справочники.Номенклатура.НайтиПоНаименованию("Ном2");
мОбъектЗапроса.Параметры.Вставить("Номенклатура", Номенклатура); // <Массив>[Массив]
РезультатЗапроса = мОбъектЗапроса.Выполнить();
РезультатКоллекция = РезультатЗапроса.Выгрузить();
//Индикатор = ирОбщий.ПолучитьИндикаторПроцессаЛкс(РезультатКоллекция.Количество());
Для каждого СтрокаРезультата Из РезультатКоллекция Цикл
//ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
ОбработкаПрерыванияПользователя();
Попытка
// Обработчик строки результата НАЧАЛО
// Обработчик строки результата КОНЕЦ
Исключение
ВызватьИсключение
КонецПопытки;
КонецЦикла;
//ирОбщий.ОсвободитьИндикаторПроцессаЛкс(Индикатор, Истина); ПоказатьЭтаФорма.Закрыть();
по причине:
Операция не доступна для неоткрытой формы
После нажатия OK все равно закрывается нормально. Зачем тогда сообщение об ошибке?
Способ воспроизведения, наверное, не приведу, только наблюдения.
Я работаю только в консоли запросов, при этом пишу запросы как с помощью конструктора, так и вручную, часто сохраняю.
Завершаю работу с ИР следующим образом. Сохраняю список запросов, закрываю окно консоли запросов, затем нажимаю крестик на панели (самая правая кнопка).
При нажатии крестика иногда возникает такая ошибка.
1С 8.2.13
В консоли запросов при вызове панели свойств строки для числа показывает только целые значения ( т.е. отбрасывает знаки после запятой). см. скриншот
"Управление торговлей", редакция 10.3 (10.3.31.3)
Поставил Инструменты разработчика 3.27.1 портативную версию.
При попытке открыть консоль кода или консоль запросов, не важно из панели или отдельно получаю:
{ВнешняяОбработка.ирОбщий.МодульОбъекта(9547)}: {ВнешняяОбработка.ирОбщий.МодульОбъекта(9544)}: Ошибка при вызове метода контекста (Создать): Ошибка инициализации модуля: ВнешняяОбработка.ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой.МодульОбъекта: {Форма.Форма.Форма(7726)}: Метод объекта не обнаружен (ФормаОбработкаОповещенияЛкс)
ВызватьИсключение ОписаниеОшибки();
P.S. После нескольких перезапусков БД вылечилось само....
При попытке выполнения какой либо операции с любым элементом во всех обработках вылетает следующее:
При подписке ЗаписатьВерсиюОбъекта на событие ПередЗаписью произошла ошибка. Обработчик события не найден.
1. В коде встречается конструкция "#Если _ Тогда", в каких случаях это срабатывает?
2. Зачем нужна Истина в конструкциях типа
Если Истина
И ТипЗнч(КлючОбъекта) <> Тип("ОбъектМетаданных")
И ТипЗнч(УзелОбмена) <> Тип("Массив")
и Ложь в конструкциях
Если Ложь
Или ТипЗнч(КоллекцияЗначений) = Тип("Структура")
Или ТипЗнч(КоллекцияЗначений) = Тип("Соответствие")
3. Каков сакральный смысл в условиях типа (все равно не выполнится вроде как)
Выполнить("Если Ложь Тогда " + МетаОбщийМодуль.Имя + ".Й() КонецЕсли");
Небольшой анализ модуля "ирПодборИОбработкаОбъектов" :
строка 393, КоллекцияСтрок = ОбъектДляЗаписи.Выгрузить(); -
В "ОбъектДляЗаписи" реквизит "НомерСтроки" равен, например, 60, а в ТаблицаЗначений "КоллекцияСтрок" уже выгружается "НомерСтроки" = 1. Похоже, что "НомерСтроки" это встроенный реквизит и его так просто не поменяешь в объекте ТаблицаЗначений.
Далее в строке 409, НайденныеСтроки = КоллекцияСтрок.НайтиСтроки(КлючСтроки); идет поиск по реквизиту "НомерСтроки" и ничего не находит. Далее генерируется Исключение и аминь.
Обойти проблему как-нибудь можно?
1С:Предприятие 8.3 (8.3.5.1248), клиент-серверная версия 32 бит
"Управление торговлей", редакция 10.3 (10.3.30.1)
Консоль запросов.
При использовании временных таблиц (или наоборот, после их использования) в некоторых случаях возможно неверное формирование текста модуля по кнопкам
"Сформировать и поместить в буфер обмена текст для вставки в модуль" на вкладках Обработка результата и Обработка строки результата.
Причем полученный запрос может не иметь ничего общего с исходным
ВЫБРАТЬ
Банки.Ссылка
ИЗ
Справочник.Банки КАК Банки-->
мОбъектЗапроса = Новый Запрос;
мОбъектЗапроса.Текст = "
|ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ ВТ_Обороты";
РезультатЗапроса = мОбъектЗапроса.Выполнить();
РезультатКоллекция = РезультатЗапроса.Выгрузить();
//Индикатор = ирОбщий.ПолучитьИндикаторПроцессаЛкс(РезультатКоллекция.Количество());
Для каждого СтрокаРезультата Из РезультатКоллекция Цикл
//ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
ОбработкаПрерыванияПользователя();
Попытка
// Обработчик строки результата НАЧАЛО
// Обработчик строки результата КОНЕЦ
Исключение
ВызватьИсключение
КонецПопытки;
КонецЦикла;
//ирОбщий.ОсвободитьИндикаторПроцессаЛкс(Индикатор, Истина); ПоказатьГлюк может воспроизвестись и после перезапуска предприятия. Чистка кэша не помогает.
Жаль что нет поиска по регистрам.
Как пожелание на развитие - возможность поиска документов и записей регистров с определенной даты (чтобы не шерстить большие объемы). А также возможность выбора метаданных по составу плана обмена (существенная часть потерянных объектов возникает в результате обменов), константы не все, только имеющие значение как ссылка.
В принципе достаточно хорошая вещь , только не может осилить более 256 таблиц.
Полноценно проверить не мог, но на выдранной обработке ирПоискБитыхСсылок два раза крахнулась программа из-за недостатка памяти.
УТ 10.3 Клиент-серверная 8.3.5.1248 x86
ИрКонсольЗапросов
Неверно формируются комментарии к параметрам запроса
Запрос
ВЫБРАТЬ
Контрагенты.Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.ОсновнойМенеджерПокупателя = &ОсновнойМенеджерПокупателяПолученный код модуля
мОбъектЗапроса = Новый Запрос;
мОбъектЗапроса.Текст = "
|ВЫБРАТЬ
| Контрагенты.Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ОсновнойМенеджерПокупателя = &ОсновнойМенеджерПокупателя";// <Пользователи>[11111] Справочники.Пользователи.НайтиПоНаименованию("11111");
мОбъектЗапроса.Параметры.Вставить("ОсновнойМенеджерПокупателя", ОсновнойМенеджерПокупателя); //
РезультатЗапроса = мОбъектЗапроса.Выполнить();
РезультатКоллекция = РезультатЗапроса.Выгрузить();
//Индикатор = ирОбщий.ПолучитьИндикаторПроцессаЛкс(РезультатКоллекция.Количество());
Для каждого СтрокаРезультата Из РезультатКоллекция Цикл
//ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
ОбработкаПрерыванияПользователя();
Попытка
// Обработчик строки результата НАЧАЛО
// Обработчик строки результата КОНЕЦ
Исключение
ВызватьИсключение
КонецПопытки;
КонецЦикла;
//ирОбщий.ОсвободитьИндикаторПроцессаЛкс(Индикатор, Истина); ПоказатьДля получения верного результата в функции ПолучитьКодПолученияРезультатаЗапроса
строку
ТекстМодуля = ТекстМодуля + КомментарийЗначения;
вынести за условие (вставить после строк
ТекстМодуля = ТекстМодуля + "
|" + ПеременнаяЗапрос + ".Параметры.Вставить(""" + СтрокаПараметра.ИмяПараметра + """, " + ТекстЗначения + "); // " + ПредставлениеЗначения;)
И в начале цикла по параметрам добавить
КомментарийЗначения = ""- Консоль заданий. Добавлена закладка "Методы" для группировки фоновых заданий по методам
- Глобальная поддержка таблиц перерасчетов
- Редактор изменений по плану обмена. Добавлены команды "Копировать всю регистрацию" и "Копировать регистрацию" для выбранных таблиц
- Поиск битых ссылок. Добавлена опция поиска "Только регистраторы" для поиска только в регистрах в поле Регистратор
- Платформа 8.3.5.1460
- Сервер MS SQL
- Версия ИР 3.31 (обычная, не портабельная)
- Конфигурация "Управление производственным предприятием", версия 1.3.63.4
При записи набора записей регистра бухгалтерии используя обработки подсистемы (например: "Поиск дублей и замена ссылок", "Редактор объекта БД") изменяется значение изменения с "Неопределено" ("Null" в запросе) на "Пустое значение типа" ("Справочник.[ИмяСправочника].ПустаяСсылка" в запросе).
В качестве примера - конфигурация УПП 1.3.63.4, регистр бухгалтерии "Хозрасчетный".
При редактировании набора записей регистра бухгалтерии через "Редактор объекта БД", значение измерения "Валюта" при записи изменяется с "Null" на "Справочник.Валюты.ПустоеЗначение".
Скорее всего, ошибка проявляется и для других регистров в аналогичной ситуации (я не проверял; для регистра бухгалтерии это особенно критично).
Возможно ли с этим что-то сделать? Или это можно отнести к особенностям подсистемы?
Основные изменения:
- При обработке наборов записей регистров бухгалтерии в режиме "Отключить контроль записи (ОбменДанными.Загрузка = Истина)" реализована корректная очистка недоступных по признакам учета полей
- В поиске и замене дублей доделана незавершенная в прошлой версии оптимизация однократной обработки ссылающихся объектов
- В редакторе объекта БД в нижней командной панели добавлена команда "Показать различия будущего и текущего состояния данных" позволяющая до записи оценить к каким изменениям она приведет
- Во всех формах добавлены глобальные команды "Копировать значение (ALT+SHIFT+C)" и "Вставить значение (ALT+SHIFT+V)", которые понимают ссылки и используют буфер обмена Windows, однако в силу ограничений платформы недоступны непосредственно в полях ввода табличных полей
- Кнопка сравнения содержимого табличного поля теперь оперирует оформлением строк, а не данными, т.е. учитывает например режим "Отображать идентификаторы вместо представлений
(1463) Исправлено
Не все документы удаляют движения при распроведении, некоторые просто снимают признак активности (например в УПП такой документ как Корректировка записей регистров).
Если ПользовательИБ.РежимЗапуска = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Тогда
ЭтаФорма.РежимЗапуска = "УправляемоеПриложениеТонкий";
ИначеЕсли ПользовательИБ.РежимЗапуска = РежимЗапускаКлиентскогоПриложения.ОбычноеПриложение Тогда
ЭтаФорма.РежимЗапуска = "ОбычноеПриложение";
Иначе //Авто
Если Метаданные.ОсновнойРежимЗапуска = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Тогда
ЭтаФорма.РежимЗапуска = "УправляемоеПриложениеТонкий";
Иначе
ЭтаФорма.РежимЗапуска = "ОбычноеПриложение";
КонецЕсли;
КонецЕсли; ПоказатьНе хорошо конечно, но злого умысла нет, так что норм.
Основные изменения:
Поиск дублей и замена ссылок
+Теперь замена ссылок при обработке каждого элементарного объекта открывает транзакцию и устанавливает управляемую блокировку
Подбор и обработка объектов
+Добавлен включенный по умолчанию флажок "Пообъектные транзакции", обеспечивающий для обработки каждого объекта открытие транзакции и установку управляемой блокировки
Анализ техножурнала
+В форме блокировки добавлена кнопка "Сравнить" для сравнения содержимого табличных полей заблокированного и блокирующего набора диапазонов
Консоль заданий
+Реализована поддержка файлового механизма регламентных и фоновых заданий 8.3
Консоль компоновки
+Глобальная команда копирования значения (CTRL+SHIFT+C) научилась брать значения из ячеек табличного документа результата
(1478) Исправлено
Платформа 8.2.19.83
режим Серверный MS SQL
В консоли запросов делаю сравнение на пустое значение
КОГДА СписаниеТоваровТовары.Партия = &Null
ТОГДА "=&Null"
ИНАЧЕ "<> =&Null"
КОНЕЦ КАК НаллРавно,
ВЫБОР
КОГДА СписаниеТоваровТовары.Партия ЕСТЬ NULL
ТОГДА "ЕстьNull"
ИНАЧЕ "не ЕстьNull"
КОНЕЦ КАК ЕстьНал
В результате выполнения запроса в консоли поле НаллРавно отрабатывает корректно (см.картинку)
А при выполнении в конфигураторе оба варианта попадают в ИНАЧЕ - "<> =&Null" и "не ЕстьNull"
Подскажите, где ошибка?
1. Если сначала сделать отбор по метаданным, а потом поиск ("Заполнить") - всё равно долго и упорно ищет по всем метаданным.
2. Планов обмена не хватает.
upd: нашёл кнопку "Подбор", почти то что надо.
Есть еще возможность выбрать нужные объекты в инструменте "Подбор и обработка объектов" и передать оттуда в "Удаление объектов с контролем ссылок".
Отбор по метаданным используется для фильтрации содержимого таблицы кандидатов на удаление. При поиске кандидатов он не используется. Подсказку для этой кнопки я обновлю. Диалог, открывающийся по этой кнопке переделаю.
{ОбщийМодуль.ирОбщий.Модуль(3171,30)}: Конструктор не найден
ДействиеТранслятор = Новый <<?>>Действие("Клс" + ИмяКласса + "Нажатие");
{ОбщийМодуль.ирОбщий.Модуль(3177,30)}: Конструктор не найден
ДействиеТранслятор = Новый <<?>>Действие("КнопкаКоманднойПанели_Действие")
{ОбщийМодуль.ирОбщий.Модуль(3334,63)}: Конструктор не найден
ТабличноеПоле.УстановитьДействие("ПриПолученииДанных", Новый <<?>>Действие("ПриПолученииДанныхДоступныхПолей"));
{ОбщийМодуль.ирОбщий.Модуль(4799,27)}: Тип не определен (СравнениеФайлов)
СравнениеФайлов = Новый <<?>>СравнениеФайлов;
{ОбщийМодуль.ирОбщий.Модуль(4859,27)}: Тип не определен (СравнениеФайлов)
СравнениеФайлов = Новый <<?>>СравнениеФайлов;
{ОбщийМодуль.ирОбщий.Модуль(10188,21)}: Тип не определен (ДиалогВыбораФайла)
ВыборФайла = Новый <<?>>ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
{ОбщийМодуль.ирОбщий.Модуль(10222,21)}: Тип не определен (ДиалогВыбораФайла)
ВыборФайла = Новый <<?>>ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
{ОбщийМодуль.ирОбщий.Модуль(10365,25)}: Конструктор не найден
ДействиеКнопки = Новый <<?>>Действие(ИмяДействия);
{ОбщийМодуль.ирОбщий.Модуль(10479,21)}: Тип не определен (ДиалогВыбораФайла)
ВыборФайла = Новый <<?>>ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
{ОбщийМодуль.ирОбщий.Модуль(12315,54)}: Конструктор не найден
КнопкаСтруктураКоманднойПанели.Действие = Новый <<?>>Действие("СтруктураКоманднойПанелиНажатие");
Подскажите где "копать", что было не сделано? компоненты зарегистрированы все.
Windows Server 2008 64bit? MS SQL Server 2008 (64 ,bit).
Предложу наверняка не лучший вариант:
РежимИспользованияМодальности = Истина;
Выполнить("Попытка РежимИспользованияМодальности = НЕ (Метаданные.РежимИспользованияМодальности = Метаданные.СвойстваОбъектов.РежимИспользованияМодальности.НеИспользовать) Исключение КонецПопытки;");
Если РежимИспользованияМодальности Тогда
Ответ = Вопрос("Сохранить текущие запросы?", РежимДиалогаВопрос.ДаНетОтмена);
Иначе
Ответ = КодВозвратаДиалога.Нет;
КонецЕсли;ОткрытьЗначение приводится к такому виду:
РежимИспользованияМодальности = Истина;
Выполнить("Попытка РежимИспользованияМодальности = НЕ (Метаданные.РежимИспользованияМодальности = Метаданные.СвойстваОбъектов.РежимИспользованияМодальности.НеИспользовать) Исключение КонецПопытки;");
Если РежимИспользованияМодальности Тогда
ОткрытьЗначение(РасширенноеЗначение);
Иначе
Выполнить("ПоказатьЗначение(,РасширенноеЗначение)");
КонецЕсли;
ПоказатьПредупреждение к такому
РежимИспользованияМодальности = Истина;
Выполнить("Попытка РежимИспользованияМодальности = НЕ (Метаданные.РежимИспользованияМодальности = Метаданные.СвойстваОбъектов.РежимИспользованияМодальности.НеИспользовать) Исключение КонецПопытки;");
Если РежимИспользованияМодальности Тогда
Предупреждение("Сначала необходимо выбрать узлы");
Иначе
Сообщить("Сначала необходимо выбрать узлы", СтатусСообщения.Важное);
КонецЕсли;ВыбратьЭлемент, например к такому:
РежимИспользованияМодальности = Истина;
Выполнить("Попытка РежимИспользованияМодальности = НЕ (Метаданные.РежимИспользованияМодальности = Метаданные.СвойстваОбъектов.РежимИспользованияМодальности.НеИспользовать) Исключение КонецПопытки;");
Если РежимИспользованияМодальности Тогда
ВыбранныйЭлемент = СписокВосстановления.ВыбратьЭлемент("Вы можете открыть файл восстановления прерванной сессии");
Иначе
ВыбранныйЭлемент = СписокВосстановления[0];
КонецЕсли;Основные изменения:
Подбор и обработка объектов
+Реализованы кнопки загрузки из файла и выгрузки в файл настроек обработки
3.37.1
В общих настройках для конфигураций без БСП добавлен флажок "Эмуляция записи на сервере", включенный по умолчанию и перенаправляющий запись во внешнее соединение. Во внешнем соединении запись объектов в большинстве случаев не вызывает ошибок.
(1495) Исправлено
{ВнешняяОбработка.ирПортативный.МодульОбъекта(7,7)}: Переменная с указанным именем уже определена (ирПлатформа)
Перем <<?>>ирПлатформа Экспорт;
{ВнешняяОбработка.ирПортативный.МодульОбъекта(58,9)}: Процедура или функция с указанным именем уже определена (Ду)
Функция <<?>>Ду(Знач ТекстПрограммы, п1 = 0, п2 = 0, п3 = 0, п4 = 0) Экспорт
{ВнешняяОбработка.ирПортативный.МодульОбъекта(238,9)}: Процедура или функция с указанным именем уже определена (Отладить)
Функция <<?>>Отладить(Объект, Модально = Ложь, НастройкаКомпоновкиИлиТекстЗапроса = Неопределено, ВнешниеНаборыДанных = Неопределено,
{ВнешняяОбработка.ирПортативный.МодульОбъекта(292,9)}: Процедура или функция с указанным именем уже определена (Исследовать)
Функция <<?>>Исследовать(Объект = Неопределено, Модально = Ложь, КакКоллекцию = Ложь, ОтложенноеВыполнение = Ложь) Экспорт
ПоказатьЕсли хоть раз был сделан отбор по Метаданным, то все последующие отборы обязательно будут иметь хоть какое-то значение Метаданного. И, например, сделать отбор по всем имеющим признак Используемые без учета значения Метаданное не получится.
Предполагаю что обработка ирРедакторПредопределенных была сделана на основе другой обработки. Интересно, если, в определенных случаях, будет "Сравнение, объединение с конфигурацией" без установленной галочки "Устанавливать соответствия по именам объектов" не затрет ли обработка ирРедакторПредопределенных обработку "Универсальные подбор и обработка объектов" (из-за соответствия идентификаторов).
Возможно ошибка уже исправлена, у меня версия 3.35. В консоли запросов при попытке перемещения запроса в другую группу (по правой кнопке). Возникает ошибка:
{Форма.ФормаВыбораСтрокиДереваЗапросов.Форма(33,1)}: Переменная не определена (ирОбщий)
<<?>>ирОбщий.ИнициализироватьФормуЛкс(ЭтаФорма, "Обработка.ирКонсольЗапросов.Форма.ФормаВыбораСтрокиДереваЗапросов");
Это касательно внешних форм (в конфу не встраивал)
Копирование и вставка ссылок.
Во всех полях ввода и табличных полях подсистемы доступны команды Копирования (SHIFT+ALT+C) и Вставки (SHIFT+ALT+V) ссылки. Используется собственный формат буфера обмена Windows и поэтому копировать можно в приложении одной базы, а вставку выполнить в приложении другой базы с одноименным типом объектов.
В большинстве полей ввода подсистемы при вставке представлений ссылок документов выполняется поиск подходящего документа по номеру и дате из вставленного представления.
В большинстве полей ввода подсистемы при вставке представлений уникальных идентификаторов (например "<Объект не найден> (2491:bb0d84b6646fdfd3424fd266dd85544a)", "dd85544a-d266-424f-bb0d-84b6646fdfd8") выполняется преобразование уникального идентификатора в ссылку.
Основные изменения:
- Подбор и обработка объектов. *Исправлена ошибка при открытии обработки "Изменение реквизитов" для табличной части
- Редактор предопределенных. +В списке типов добавлены колонки "Режим обновления в метаданных" и "Режим обновления результирующий"
Привет. Этой функции ведь уже нет? Убери в описании тогда :)
Имеется также следующее пожелание к обработке "Поиск дублей и замена ссылок": часто после замены ссылок возникает необходимость перенести неправильные элементы в другую группу справочника, например, в группу "Не используемые", хотелось бы видеть в обработке такую возможность.
Ну и напоследок, еще одно пожелание: реализовать подробную справочную систему по работе с инструментами. Лично я испытывал небольшие трудности в процессе изучения обработки "Поиск дублей и замена ссылок". Даже сейчас, после использования обработки на протяжении двух недель, я не могу сказать что полностью изучил ее возможности.
Транслитерацию при анализе дублей делать не планирую, т.к. это нужно довольно редко, а время анализа это увеличит существенно. Думаю здесь вполне можно самому написать миниобработку, дающую на выходе дерево дублей, и передать его в инструмент программно в качестве параметра (смотри пример в консоли запросов в командной панели над табличным полем Результат-коллекция).
Полноценная справочная система врядли появится. Ее поддержание в актуальном состоянии потребует больших ресурсов.
При замене дублей Номенклатуры возникает постоянная трудность с Документом типа УстановкаЦенНоменклатуры (и аналогичными), т.к. высока вероятность того, что в документе окажутся две строки с одинаковой Номенклатурой, и документ не сможет перепровестись. Как способ решения, предложил бы отлавливать неудачные попытки замены в Документах и для списка неудачных замен предлагать решения (в т.ч. удаление строки с заменяемой ссылкой). Ещё круче, если будет можно подцеплять свой алгоритм (свой код разруливания)...
Полагаю, если не подключать свой фрагмент кода, то потребуется создать список однотипных данных (строки документов) и предлагать избавляться от этих данных? Пока я натыкался только на регистр Цен и соответственно на Документ УстановкаЦен.
Может кто вспомнит другие случаи невозможности замены ВЛОБ?
Вместо Универсального анализатора причин ошибок записи с заменой...
Основные изменения:
- Поиск дублей и замена ссылок. Перед записью измененных наборов записей подчиненных регистров сведений теперь выполняется удаление неуникальных записей с выводом ключа (1530)
- Удаление объектов с контролем ссылок. Произведены улучшения и исправления ошибок
- Редактор объекта БД. Добавлена поддержка перерасчетов в движениях документа
Огромное спасибо за ИР, очень удобный набор инструментов, использую ежедневно.
Для задач разбора логов ТЖ и расследования проблем производительности на мой взгляд лучший инструмент (в сравнении с ЦУПом и облачными сервисами).
Единственное пожалуй чего не хватает - выгрузки объектов в XML (без узла), то как сделано в обработке ИТС ВыгрузкаЗагрузкаДанныхXML. Приходится файл - открыть - выбрать папку с обработками ИТС .. :-))
Либо у меня старая версия либо я что-то не правильно понимаю либо вопрос "возможно определить самому правила определения правильной ссылки?" сохраняется.
Привет. Есть возможность прикрутить в Консоль запросов Выгрузку в XML подобно этой ?
По ссылке обработка вываливается в кучу ошибок при запуске.
Например, есть задача получить данные с нескольких баз по веб-сервису и сравнить результаты между собой. Учитывая, что время на получение данных, которые используются в сравнении достаточно велико, хотелось бы иметь возможность сохранять результаты однажды полученных данных и далее работать с ними. Если сейчас это уже возможно сделать, просьба подсказать как именно...
Как то так?
1С:Предприятие 8.3 (8.3.5.1248) Клиент-сервер.
Консоль запросов.
Если выбран вариант отображения "Дерево и если в Обработке строки результата нажать "выполнить", получаем сообщение об ошибке:
{Форма.Форма.Форма(2100)}: Метод объекта не обнаружен (Количество)
ВсеСчитано = КоличествоОбщее = РезультатКоллекция.Количество();Дополнительно хочется определять переменные, которые сохранялись бы между обработками строк. Например создав структуру, в которую складируют нужные переменные и потом считывать их при обработке других строк...
Если таковое имеется, то прошу подправить документацию. Заранее Спасибо Большое!
P.S. Параметры в обработчике строк это Структура? т.е. можно на ходу пополнять (не определять на форме предварительно)?
{ВнешняяОбработка.ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой.МодульОбъекта(3147)}: Поле объекта не обнаружено (СтруктураТипаКонтекста)Сервер мощный, новый, пришел на днях (32 ядра, 32 Гб оперативки, 6 быстрых серверных жестких дисков), платформа 8.3 (последняя на текущий момент), 64-x сервер 1с, конфа УПП 1.3.
Заранее признателен.
На вкладке "перед выполнение запроса" я получаю таблицу значений "тз".
В конце строка
мОбъектЗапроса.УстановитьПараметр("тз",тз);
текст запроса
Выбрать * Поместить ВремТЗ Из &тз Как тз
;
Выбрать * ИЗ ВремТЗ
ругается
Текст запроса: Строка 1: {(1,31)}: Тип не может быть выбран в запросе
Выбрать * Поместить ВремТЗ Из <<?>>&тз Как тз
Портативные "Инструменты разработчика" 3.43.1
Файловая 8.2.19.90
Ситуация такая.
Строится запрос в котором происходит объединение остатков 2-х рег накопления и данные помещаются во вложенный запрос.
(у одного регистра ресурс Число длина 15, точность - 3)
(у второго регистра ресурс Число длина 10, точность - 0)
При включении режима "Структурного редактирования текста запроса" валит ошибку:
{Форма.Форма.Форма(2223)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
Результат = мОбъектЗапроса.ВыполнитьПакет();
по причине:
{(1, 24)}: Неверные параметры "ЧИСЛО"
ВЫБРАТЬ ВЫРАЗИТЬ(0 КАК <<?>>ЧИСЛО(41, 3)) КАК КоличествоКонечныйОстаток INTO _Запрос_ВложенныйЗапрос_В ирКонсольЗапросов в
Процедура СоздатьВременныеТаблицы(СтрокаДереваЗапроса)ВременныйПостроительЗапроса.ДоступныеПолятак вот для поля КоличествоКонечныйОстаток определяется тип значения Число(41,3)
затем когда происходит построение запроса
ирОбщий.ПолучитьЗапросИмитаторКоллекцииПолейЛксВЫБРАТЬ ВЫРАЗИТЬ(0 КАК ЧИСЛО(41, 3))
не получается
Прикрепляю тестовую базу и текст запроса.
Спасибо.
Текст запроса.txt
Платформа 8.2-8.3.7 максимальную длину числа в языке запросов в некоторых местах ограничивает 38 разрядами, но при объединении в данном случае по непонятной причине (скорее всего ошибка платформы она увеличивается похоже на число дробных знаков (3) и поэтому получается 41. А 41 уже больше разрешенных 38 и поэтому проверка запроса платформой выдает ошибку на выражении КАК ЧИСЛО(41,3).
В следующей версии подсистемы сделаю обход этой предположительно ошибки платформы.
Файловая 8.2.19.90
В интерфейсной панеле в автозапуск поставил справочник и документ. В настройках установил флаг "При автозапуске открывать форму списка". Но при открытии инетрфейсной панели всегда открывается форма нового элемента.
Проблема в этом:
ирИнтерфейснаяПанель.epf
см. в Форма Модуль формы
Вызывается ф-ия ирПолучитьКартинкуЕслиЕсть
Если стНастройки.ПриАвтозапускеОткрыватьФормуСписка Тогда
Попытка
ИмяФормы = ?(МДОбъект.ОсновнаяФормаСписка = Неопределено, "ФормаСписка", МДОбъект.ОсновнаяФормаСписка.Имя);
ДобавитьКнопку(КнопкиКоманднойПанели, ИмяФормы, "Форма списка", , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("ирСписок"));
Исключение
КонецПопытки;
КонецЕсли;
Показатьпадает на
ирПолучитьКартинкуЕслиЕсть("ирСписок")- Удаление объектов с контролем ссылок. Оптимизации, исправления, добавлен флажок "Игнорировать" в списке неблокирующих типов.
- Анализ техножурнала. Добавлен лимит количества загружаемых событий для предотвращения аварийного завершения из-за нехватки памяти
- Подбор и обработка объектов. Добавлен флажок "Подключать поля количества движений" для таблиц документов
+Редактор таблицы значений. Колонки с типом Булево теперь отображаются флажками
+Редактор объекта БД. В таблицах табличных частей, движений и набора записей колонки с типом Булево теперь отображаются флажками
+Удаление объектов с контролем ссылок. Добавлена возможность фильтрации по типам при заполнении таблицы кандидатов. Оптимизирована работа с большим количеством данных.
+ Добавлен показ индексов таблиц в дереве запроса консоли запросов, дереве доступных полей конструктора запроса, конверторе текста БД анализа техножурнала
+ В анализе техножурнала добавлена для события добавлена колонка "Неизвестные свойства"
- консоль запросов
- консоль построителя отчетов
- консоль компоновки данных
- консоль заданий
- конструктор запроса
- справочник алгоритмов
- исследователь объектов
- интерфейсная панель
- тестирование метаданных"
включает также и отладку ВПФ и обработок.
Тогда, значит, написал не по адресу )
- поддерживать внесенные изменения для немодальности при любом связанном изменении
- исправлять внесенные для немодальности при обнаружении пользователями проблем в их работе
Этот параметр автоматически подставляется в командную строку при запуске приложения из конфигуратора.
Если этот параметр не указан, то в этих клиентах он не учитывается: исключения не кидаются, предупреждения не показываются.
В веб-клиенте "Режим использования модальности" учитывается всегда."
Таким образом достаточно запускать обычное приложение НЕ из конфигуратора. 1С записало пожелание "добавить флажок для отключения контроля модальности при запуске из конфигуратора".
{ОбщаяКоманда.ирРедактироватьИзмененияНаУзле.МодульКоманды(8,3)}: Переменная не определена (ОбщийКлиентИис)
<<?>>ОбщийКлиентИис.ОткрытьПросмотрИзмененийНаУзлеИис(ПараметрКоманды); (Проверка: Толстый клиент (обычное приложение))
Временно взял из 3.47
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ТонкийКлиент Или ВебКлиент Тогда
Сообщить("Команда доступна только в толстом клиенте");
#Иначе
Форма = ирОбщий.ПолучитьФормуЛкс("Обработка.ирРедакторИзмененийПоПлануОбмена.Форма");
Форма.ПараметрУзелОбмена = ПараметрКоманды;
Форма.Открыть();
#КонецЕсли
КонецПроцедуры ПоказатьКак можно перехватить и подменить стандартное окно редактирования списка значений?
Хочется иметь возможность заполнять список по кодам справочников (скопировал из Excel колонку, вставил в поле строкой, строка распарсилась и список заполнился) , и заполнять список произвольным запросом (как в обработке "регистрация изменений для обмена")
Редактор объекта БД
+В подменю текущей таблицы добавлена кнопка "Заполнить запросом" для заполнения текущей таблицы данными запроса
+В подменю текущей таблицы добавлена кнопка "Заполнить другой объект БД" для заполнения его текущей таблицей
Редактор таблицы значений
+Добавлена кнопка "Заполнить объект БД" для заполнения его текущей таблицей
Анализ техножурнала
+Добавлена полоса регулирования отбора по длительности событий таблицы журнала
Есть пожелание в доработке "Замена дублей":
Часто дубли элементов справочника содержат два неполных комплекта сведений. В связи с этим может оказаться полезным не просто метить "Правильные данные", но добавить режим Объединения при котором незаполненные реквизиты берутся из заполненных одного из объектов (попытка избавиться от незаполненных значений). Кроме того для определения Правильных данных в отдельных случаях следует руководствоваться полнотой заполнения реквизитов (минимум пустых реквизитов), например из двух дублирующихся Контрагентов выбирать в качестве правильного объект с наиболее полно заполненными кодами.
1) Я предложил дополнительный индекс Ценнности = Количество непустых реквизитов. Оставлять объект с наименьшими пропусками, подразумевая, что обязательные реквизиты заполнены равноценно у всех.
2) Режим слияния объектов. Когда производится попытка заполнения пропущенных (незаполненных) реквизитов по данным заменяемого Объекта.
Применять подобные отборы Ценности или слияние данных нескольких объектов можно через СпецКнопки обработки ПоискДублей. У меня нет идей подсчета незаполненных реквизитов в запросе к произвольным объектам, соответственно остается программный перебор элементов набора для вычисления ценности. И процедура вычисления набора данных слияния перед заменой, с последующим присвоением оставшемуся объекту.
Можно конечно допилить механизм обработки таблицы различающихся полей, для копирования отдельных реквизитов из другого экземпляра. Но, думается это много сложнее.
1) Я как раз намекаю, что "индекс Ценнности = Количество непустых реквизитов" во многих частных случаях можно сделать уже сейчас этим конструктором. Реквизитов может быть море и средняя температура по больнице удобна лишь в специфических случаях, поэтому я не буду ее добавлять, чтобы не соблазнять пользователя на необдуманный выбор.
2) Пожелание добавить пользовательский алгоритм-обработчик для слияния данных объектов записал.
(1642)
Почему ты пишешь "возвращаясь"? Вроде бы за 12 минут до этого ты писал на эту же тему =)
По сути пожелания опять же это можно сделать существующими средствами. В закладке "вычисление ценности" в элементе отбора (компоновки, не построителя!) можно выбирать поля не только в качестве левого значения, но и в качестве правого значения.
Характеристика с владельцем Номенклатура1, видимо программно, получила второго владельца Номенклатура2.
Вернее, не так. Программно сформированы движения с Номенклатурой2 и характеристикой.
Нужно выявить эти движения в которых фигурирует Номенклатура2 с характеристикой и зачистить ссылку на характеристику.
В Консоли запросов отобрал регистраторы записей в РН: Партии товаров на складах и РН: Свободные остатки с неправильной комбинацией номенклатуры и характеристики.
Отобранными ссылками на закладке "Обработка результата" заполнил табличную часть "НайденныеСсылки" обработки "Поиск дублей и замена ссылок"
обр = Обработки.ирПоискДублейИЗаменаСсылок.Создать();
форма = обр.ПолучитьФорму();
стр = форма.ПравилаЗаменыСсылок.Добавить();
стр.ЧтоЗаменять = Параметры.НеправильнаяХарактеристика;
стр.НаЧтоЗаменять = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
стр.Пометка = Истина;
Для Каждого рег Из мРезультатЗапроса.Выгрузить() Цикл
стч = обр.НайденныеСсылки.Добавить();
стч.Данные = рег.Регистратор;
стч.Метаданные = "Документ."+рег.Регистратор.Метаданные().Имя;
стч.ТипДанных = рег.Регистратор.Метаданные().Имя;
стч.Ссылка = Параметры.НеправильнаяХарактеристика;
стч.ДатаДокумента = рег.РегистраторДата;
стч.Пометка = Истина;
КонецЦикла;
форма.Открыть();
ПоказатьСергей, в "Поиск дублей и замена ссылок" даже если конфигурация ИР встроенна в основную и при настройке "Записывать на сервере = истина" при нажатии на "Выполнить замену" замена выполняется в контексте толстого клиента.
Почему она не уходит на сервер? База клиен-серверная, 8.3.7.1933. Тут просто мне досталась конфигурация УНФ старого релиза 1.4.9.31 у которой нет заглушек инструкциями предпроцессора.
Мне сейчас нужно вычистить их ужастную ситуацию с дублями, так как она вредит их другой базе (бух 3.0), а уже потом я собирался их обновить до последних релизов УНФ (где, надеюсь, уже таких проблем с работой Вашей подсистемы не будет)
Консоль запросов
ВЫБРАТЬ 0 КАК Х ПОМЕСТИТЬ Регистр1 ОБЪЕДИНИТЬ ВЫБРАТЬ 1;
//ВЫБРАТЬ Младшие.Х + 2 * Старшие.Х КАК Х ПОМЕСТИТЬ Регистр2
ВЫБРАТЬ Младшие.Х, Старшие.Х
ИЗ Регистр1 КАК Старшие, Регистр1 КАК Младшие
в результате ошибка
Текст запроса: Строка 4: {(4,15)}: Таблица не найдена "Регистр2"
SELECT * FROM <<?>>Регистр2
не может корректно обработать закомментированный текст если "ПОМЕСТИТЬ" в той же строке
Управление производственным предприятием, редакция 1.3 (1.3.70.1)
клиент-сервер 1С:Предприятие 8.3 (8.3.6.2449)
Консоль запросов
Если встать в конец строки ЛЕВОЕ СОЕДИНЕНИЕ Документ.Счет и нажать Ctrl+Пробел, появляется сообщение об ошибке
{ВнешняяОбработка.ирПлатформа.МодульОбъекта(1888)}: Ошибка при вызове метода контекста (Вставить)
КоллекцияЗначений.Вставить(ИмяТекущегоСлова, ЭлементСхемы);
по причине:
Задано неправильное имя атрибута структуры
ВЫБРАТЬ
ХозрасчетныйОстатки.Организация КАК Организация,
ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто1 КАК Справочник.Контрагенты) КАК Контрагент
ПОМЕСТИТЬ ВТ_Контрагенты
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(ДАТАВРЕМЯ(2016, 1, 1), Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДСпоАвансамИПредоплатам), &ВидыСубконто, ) КАК ХозрасчетныйОстатки
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ХозрасчетныйОстатки.Организация КАК Организация,
ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто1 КАК Справочник.Контрагенты) КАК Контрагент,
ХозрасчетныйОстатки.Субконто2 КАК Документ,
ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(
ДАТАВРЕМЯ(2016, 1, 1),
Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДСпоАвансамИПредоплатам),
&ВидыСубконто,
(Организация, Субконто1) В
(ВЫБРАТЬ
ВТ_Контрагенты.Организация,
ВТ_Контрагенты.Контрагент
ИЗ
ВТ_Контрагенты)) КАК ХозрасчетныйОстатки
ЛЕВОЕ СОЕДИНЕНИЕ Документ.Счет
ГДЕ
ХозрасчетныйОстатки.Субконто2 <> НЕОПРЕДЕЛЕНО Показать{ВнешняяОбработка.ирПлатформа.МодульОбъекта(2834)}: Итератор для значения не определен
Для Каждого СтрокаМетода Из ТаблицаМетодовИнформатора Цикл
отсутствует проверка на ТаблицаМетодовИнформатора = Неопределено, который может возвращать функция ПолучитьТаблицуСвойствОбъектаИнформатором
Результат = Новый ТаблицаЗначений;
Если мОшибкаИнформаторУжеВыводилась = Истина Тогда
Возврат Результат;
КонецЕсли;
ИнициализацияСкриптаИнформатора();
Если мОшибкаИнформаторУжеВыводилась = Истина Тогда
Возврат Результат;
КонецЕсли;
ПоказатьДля Каждого СтрокаМетода Из ТаблицаМетодовИнформатора Цикл
Лечится так
Функция ПолучитьТаблицуСвойствОбъектаИнформатором(Объект, ТипСлов = "Свойство", НеопределеноСчитатьГлобальнымКонтекстом = Истина) Экспорт
Перем ТЗ;
ТЗ = Новый ТаблицаЗначений;
Если Ложь
Или ВерсияПлатформы >= 803008 // На 8.3.7 информатор падает
Или Не ЛиНизкоуровневоеПолучениеОписанийОбъектов
Тогда
Возврат ТЗ;
КонецЕсли;
Если Объект = Неопределено Тогда
Объект = СТРОКА_ГЛОБАЛЬНЫЙ_КОНТЕКСТ;
КонецЕсли;
Флаг = ?(НРег(ТипСлов) = НРег("Свойство"),
ФЛАГ_ЗАПОЛНЕНИЯ_ЗАПОЛНИТЬ_СВОЙСТВА,
ФЛАГ_ЗАПОЛНЕНИЯ_ЗАПОЛНИТЬ_МЕТОДЫ);
ПолучитьОписаниеОбъектаИнформатором(Объект, ТЗ, Флаг);
Возврат ТЗ;
КонецФункции ПоказатьОпределение регистрации DynamicWrapperX у вас осуществляется примерно так:
КлассКомпоненты = "DynamicWrapperX";
Компонента = Новый COMОбъект(КлассКомпоненты);
Пустышка = Компонента.GetIDispatch(Компонента);Среда исполнения та же, ос w2k3 x64.
Ошибка такая:
Ошибка при вызове метода контекста (GetIDispatch): Неизвестная ошибка
Если переписать вот так, то все ок:
КлассКомпоненты = "DynamicWrapperX";
Компонента = Новый COMОбъект(КлассКомпоненты);
Пустышка = Компонента.GetIDispatch(); ТЗ = Новый ТаблицаЗначений;
Если мОшибкаИнформаторУжеВыводилась = Истина Тогда
Возврат Неопределено;
КонецЕсли;
ИнициализацияСкриптаИнформатора();
Если мОшибкаИнформаторУжеВыводилась = Истина Тогда
Возврат Неопределено;
КонецЕсли;
Показать(1668) Начнем с того, что проверять версию путем проверки исполнения той или иной функции не есть гут. Продолжим тем, что если сделать GetIDispatch для другого объекта (например,wscript.shell), то метод GetIDispatch на нем отрабатывает без ошибок.
КлассКомпоненты = "DynamicWrapperX";
Компонента = Новый COMОбъект(КлассКомпоненты);
WScript = Новый COMОбъект("WScript.Shell");
Пустышка1 = Компонента.GetIDispatch(WScript); // Тут ок
Пустышка2 = Компонента.GetIDispatch(Компонента); // Тут ошибка{ВнешняяОбработка.ирПлатформа.МодульОбъекта(7632)}: Ошибка при вызове метода контекста (Run): Произошла исключительная ситуация (Microsoft VBScript runtime error): Type mismatch: 'Wrap.NumGet'
Проверил работу на разных версиях 1С на том же сервере(файловый режим)
8.2.19.130 - нет ошибки
8.3.5.1486 - ошибка
8.3.5.1517 - ошибка
8.3.6.2299 - ошибка
8.3.6.2421 - ошибка
8.3.6.2449 - ошибка
8.3.7.1901 - нет ошибки
{Отчет.ирКонсольКомпоновокДанных.Форма.Форма.Форма(1675)}: Поле объекта не обнаружено (Имя)
СтрокаРесурса.Имя = ПараметрСхемы.Имя;
Способ воспроизведения: создать новый отчет СКД с запросом и параметром, сохранить, открыть этот запрос в консоли запросов, что-нибудь изменить и попробовать сохранить. Проверял на чистой ИР серверной.
Фрагмент между
ТекущаяСхемаКомпоновкиДанных = мТекущаяСтрока.СхемаКомпоновкиДанных;ОткрытьКонструкторСхемы(мТекущаяСтрока); ПараметрыДанных = ТекущаяСхемаКомпоновкиДанных.Параметры;
Для Каждого СтрокаПараметра Из ЗначениеВыбора.Параметры Цикл
ПараметрДанных = ПараметрыДанных.Найти(СтрокаПараметра.ИмяПараметра);
Если ПараметрДанных = Неопределено Тогда
ПараметрДанных = ПараметрыДанных.Добавить();
ПараметрДанных.Имя = СтрокаПараметра.ИмяПараметра;
КонецЕсли;
Если СтрокаПараметра.ЭтоВыражение = 0 ИЛИ СтрокаПараметра.ЭтоВыражение = ИСТИНА Тогда
ПараметрДанных.Значение = СтрокаПараметра.Значение;
ИначеЕсли СтрокаПараметра.ЭтоВыражение = 2 Тогда
ПараметрДанных.Значение = СтрокаПараметра.Значение;
ПараметрДанных.ДоступенСписокЗначений = Истина;
ИначеЕсли СтрокаПараметра.ЭтоВыражение = "СКД" Тогда
ПараметрДанных.Выражение = СтрокаПараметра.Выражение;
КонецЕсли;
ПараметрДанных.ТипЗначения = СтрокаПараметра.ТипЗначения;
КонецЦикла;
ПоказатьОсновные изменения:
- Исправлены свежие неоптимальные запросы к виртуальным таблицам для получения описания их полей
- Редактор объекта БД. Добавлен флажок для учета связей параметров выбора и параметров выбора
- В конструкторе запроса и дереве запроса консоли запросов добавлена упрощенная поддержка типов запросов Insert, Update, Delete
- Инструмент "Структура командной панели" доработан и переименован в "Структура формы" и подключен во всех сложных формах
Исправлено (1727)
Платформа 8.2.19.130
Чистая база
При проверке модулей
{Обработка.ирРедакторПредопределенных.Форма.Форма.Форма(382,3)}: Процедура или функция с указанным именем не определена (ИнициализироватьПредопределенныеДанные)
<<?>>ИнициализироватьПредопределенныеДанные(); (Проверка: Толстый клиент (обычное приложение))
Во вторых пожелание - лично мне во всем наборе инструментов очень сильно не хватает еще одной обработочки с функционалом по просмотру структуры автоматически сформированных индексов и внутреннего именования полей в базе данных (очень помогает когда копаешься с оптимизацией запросов и т.п.).
А еще постоянно нужны функции по управлению сеансами пользователей (отключение, просмотр активных). В принципе недостающий функционал хорошо понятен из скриншотов представленных в этой обработке (особенно скрины 1-3 и 9).
ЗЫ: воспользовался ссылкой :)
(1682) Большое спасибо за добавление инструмента "Структура хранения БД"! (только по правам галочку забыл поставить у роли ирРазработчик, и обработку в интерфейсе не видно сразу после объединения).
- Добавлен инструмент "Структура хранения БД"
- Инструмент "Редактор изменений по плану обмена" переименован в "Редактор изменений на узлах" в связи с добавленной поддержка загрузки всех узлов (без указания плана обмена)
- В редакторе предопределенных исправлено обновление некорректное вычисление результирующего режима
зы. навеяно следующим. На инфостарте есть немало обработок связанных с закрытием остатков регистров остатков. Есть даже более-менее универсальная обработка которая результаты запроса кидает в документ "Корректировка записей регистров". По сути задача достаточно проста - запросом получаем результат (с нужными отборами и корректными синонимами (то есть вместо стандартного "КоличествоОстаток" ставим "-КоличествоОстаток КАК Остаток")) и закидываем в документ. Единственно в БП и УПП документ "Корректировка записей регистров" вроде как различается. То есть вот результаты запроса, переносим его в консоль кода и обрабатываем.
Плюс для удобства обеспечить простой обмен данными между разными частями инструментов разработчика. Например можно просто через выгрузку в XML.
{Обработка.ирРедакторИзмененийНаУзлах.Форма.Форма.Форма(107)}: Поле объекта не обнаружено (Перерасчеты)
Для Каждого МетаданныеОбъекта Из Метаданные[ТипМетаОбъектов.Множественное] Циклпроявляется только при наличии в конфигурации регистров расчета.
Исправить ее самостоятельно можно исправлением указанной строки на
Для Каждого МетаданныеОбъекта Из МетаданныеОбъектаПредка[ТипМетаОбъектов.Множественное] ЦиклПеревыложил исправленные файлы без изменения номера версии.
*Кнопка "По таблице" переименована в "По метаданным" и теперь позволяет брать схему компоновки из отчетов конфигурации
РезультатПакета = Запрос.ВыполнитьПакет();
по причине:
{(2106, 2)}: Поле не найдено "Узел"
<<?>>Узел,
Посмотрел запрос, а в нем справочник, для которого нет таблицы изменений.
В 3.52 такой ошибки не наблюдал.
Подскажите как это можно поправить
в вызове
мДанныеПоКоличествуИзменений = ирОбщий.ВычислитьКоличествоСтрокТаблицВДеревеМетаданныхЛкс(СоставПланаОбмена, "ПолноеИмя", "КоличествоЗарегистрированных", Истина,
//Новый Структура("Узел", Узлы.ВыгрузитьКолонку("Ссылка"))
Новый Структура("_ТипУзла_", Тип("ПланОбменаСсылка." + ИмяПланОбмена)));
в переменной СоставПланаОбмена передавались метаданные, которые были включены в план обмена
А начиная с версии 3,53 почему-то предаются ВСЕ метаданные. Из-за этого и возникает ошибка
Собственно в комментарии (1692) я про это и писал
1. Название конфигурации, если она хотя бы большей частью тиражная.
2. Скриншот окна инструмента на момент возникновения ошибки. Нужно отобразить все помеченные узлы. Если известен какой то конкретный проблемный объект метаданных, то нужно в дереве метаданных спозиционироваться на нем.
3. Содержимое переменной ТекстПакета на момент возникновения ошибки. Оно будет большим, поэтому передай его в виде ссылки на файл.
Проблема возникает с таблицей изменений справочника Справочник.Мотива_История. В ней почему то не находится поле Узел. Покажи ее поля в конструкторе запроса. И покажи результат выполнения запроса "ВЫБРАТЬ * ИЗ Справочник.Мотива_История.Изменения"
В посте (1692) я писал ..."Посмотрел запрос, а в нем справочник, для которого нет таблицы изменений"
У меня в конфигурации еще есть объекты, для которых не включена регистрация изменений
Посмотрите текст запроса в посте (1699) - там справочника Справочник.Мотива_История нет
Ошибка "Поле не найдено "Узел"" говорит, что таблица найдена, но в ней не найдено поле Узел! По скриншоту из конструктора запроса понятно, что есть табличная часть Изменения, которая скорее всего экранирует таблицу изменений. Проверить это можно показав закладку "Обмен данными" окна "Планы обмена" для этого справочника в конфигураторе
Исправить ее можно путем замены в модуле Обработка.ирРедакторИзмененийНаУзлах.Форма
ОписаниеТаблицыИзменений = ТаблицаВсехТаблиц.Найти(НРег(ИмяТаблицыИзменений), "НПолноеИмя");
Если ОписаниеТаблицыИзменений = Неопределено Тогдана
ОписаниеТаблицыИзменений = ТаблицаВсехТаблиц.НайтиСтроки(Новый Структура("НПолноеИмя, Тип", НРег(ИмяТаблицыИзменений), "Изменения"));
Если ОписаниеТаблицыИзменений.Количество() = 0 ТогдаТакже замечу, что если включить такой справочник в состав плана обмена, то экранирование таблицы все равно случится. Будет недоступна одна из таблиц: ТЧ или Изменения.
Я это всё к тому, что моя конфа не является чем-то уникальным
На ютубе есть видео ИР. Консоль компоновки данных. Отладка запросов,
но там нет звука и почему-то большую часть времни на экране показывается консоль запросов. А результате - непонятно.
Причем точка останова в конфигураторе на строке 58 не срабатывает. Конфигурация БГУ 1.0 (с обычными формами).
А может, я не нашел нужного описания...
(1724) Эти возможности избыточны. Если считаешь иначе, приведи пример, когда существующие возможности не позволяют за разумное время сделать нужное. В подтверждение своим словам привожу пример, как снять флажки по всем нужным типам: отобрать по нужным типам, снять флажки.
Основные изменения:
- опять заметно доработано "Тестирование метаданных"
- в поиске дублей и замене ссылок добавлена поддержка перечислений и точек маршрута бизнес-процесса
- в консоли запросов добавлена поддержка аутентификации ОС при подключении к MS SQL
- в 2 раза ускорена работа контекстной подсказки для встроенного языка
Также для кнопки "Отобрать по типам" в той же таблицы не хватает кнопки "Отклчюить отбор по типам" по аналогии с кнопкой "Отключить отбор".
Основные изменения:
- Добавлен инструмент "Отладка внешних обработок БСП". Идея взята из , поэтому проплюсуйте ее, если инструмент вам пригодится.
- Консоль запросов. Добавлен тип параметра "Выражение СКД" и его использование при редактировании запросов из консоли компоновки.
- Редактор объекта БД. Добавлена кнопка "В тонкий" для открытия объекта в тонком клиенте через COM.
Скажи, пожалуйста, планируется ли в инструменте "Структура хранения БД" поддержка отображения размеров таблиц и индексов не только для файловых ИБ? В частности, интересует MS SQL.
Заранее спасибо!
Основные изменения:
- Поиск дублей и замена ссылок. Для правил замены ссылок реализованы подчиненные правила замены зависимых, в настройках добавлены флажки "Изменять поля по связям параметров выбора" и "Определять связь по владельцу по данным"
- Структура хранения БД. Добавлена поддержка получения размеров объектов MSSQL
(1732) Реализовано
(1734) Исправлено
При нажатии на "Открыть структуру командной панели" ошибка:
{ВнешняяОбработка.ирОбщий.МодульОбъекта(17462)}: Ошибка при вызове метода контекста (ПолучитьФорму)
Результат = Менеджер.ПолучитьФорму(ПолноеИмяФайла, ИмяФормы, Владелец, Уникальность);
по причине:
Недопустимое значение параметра (параметр номер '2')
При нажатии на "Показать структуру формы" ошибка:
{Форма.Форма.Форма(494)}: Метод объекта не обнаружен (ОткрытьСтруктуруФормыЛкс)
ирОбщий.ОткрытьСтруктуруФормыЛкс(ЭтаФорма);
Версия: Портативные ИР 3.57.1
есть документы, помеченные на удаление.
есть записи независимого РС, в которых есть ссылки на эти помеченные на удаление документы.
удаление помеченнных с контролем ссылок.
запустили контроль.
отобразились записи регистров сведений.
выделил их мультиселектом.
передав в подбор и обработку.
там они появились в списке.
выделил их мультиселектом в списке.
нажал на панели инструментов (над списокм) красный крестик (удалить).
удалились из таблицы. ожидаю что и физически тоже удалились.
запускаю повторно удаление с контролем ссылок - записи РС - на месте, снова вылазят...
Если в одно месте у меня горит строка и по красному крестику удаляется
То почему в другом месте в списке по красному крестику следует ожидать другого?
И вот так в егда
Берешь хнюкакую нить
Никакой логики
Одни знания шаманские нужны
Но было влом разбираться потому как всего пару записей надо было удалить
И еще вопрос - нормальный отбор на вкладке "Результат-коллекция" есть только в подсистеме, в портативной версии его не будет?
Опиши подробно проблему с временными таблицами и "пожиранием" памяти. По текущему описанию возникают сомнения в выявленных связях между действиями и наблюдениями. В формате ленты комментариев такую проблему решать будет неэффективно, поэтому рекомендую создать по ней тему на форуме основного сайта.
Не понимаю "нормальный отбор на вкладке "Результат-коллекция"".
???
Жму кнопку "СУБД" в подсистеме Структура хранения БД, а в ответ тишина
Вызов такой:
ирОбщий.ОткрытьФормуСоединенияСУБДЛкс();
А в подсистеме Управление итогами регистров вызов такой:
ирОбщий.ОткрытьФормуСоединенияСУБДЛкс().Открыть();
При открытии любого файла в подсистеме Консоль запросов этот файл сразу становиться модифицированным (при закрытии предлагает сохранить текущие запросы). Сохранение не помогает - при следующем открытие файл опять модифицированный.
При закрытие любой из подсистем ИР наблюдаются некие тормоза (висят песочные часы секунды 3-4) - в версии 3.60 такого не было.
Замирание программы после закрытия любой формы подсистемы вызвано новой функцией - сохранением настроек пользователя. Это позволяет реже терять настройки форм подсистемы при нештатных завершениях клиентского приложения. Длительность выполнения этого сохранения (метод СохранитьНастройкиПользователя) зависит от объема пользовательских настроек. В случае если в них находится очень большой объем данных (обычно это возникает из-за неграмотного их использования кодом программы), то процесс сохранения может действительно долго длиться. При корректном завершении работы программы они также всегда сохраняются и столько же времени. Попробуй открыть инструмент "Редактор хранилищ настроек" и для текущего пользователя изучить структуру настроек пользователя. Возможно удастся найти мусорные или малополезные настройки значительного размера или в значительном количестве.
Спасибо большое.
Если есть возможность перехватить событие "НачалоВыбора(Элемент, СтандартнаяОбработка)" и есть созданная форма в конфигураторе то проблема решается просто:
Процедура ДоговорИзРеестраНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыОткрываемойФормы = Новый Структура();
ПараметрыОткрываемойФормы.Вставить("РежимВыбора", Истина);
ПараметрыОткрываемойФормы.Вставить("ТекущаяСтрока", ДоговорИзРеестра);
Результат = ОткрытьФормуМодально("ВнешнийИсточникДанных.РеестрДоговоров.Таблица.Contract.ФормаВыбора", ПараметрыОткрываемойФормы, ЭтаФорма);
Если Результат <> Неопределено И ЗначениеЗаполнено(Результат) Тогда
...
КонецЕсли;
ПоказатьМы тут сильно не мудрили, поэтому проблему запретом на модальные вызовы просто проигнорировали. (ну в Бухгалтерии 2.0 об этом думать не надо).
Но проблема возникает если нет созданной формы. Тогда толстый клиент не умеет их генерировать и поэтому нужно будет что-то намудрить с какой-то универсальной формой с динамическим списком (кажется такая в ИР уже есть).
Я подумал, что у вас есть управляемая форма, а не обычная, с динамическим списком, которая поднастраивается под определённые типы, создания на оснований, перейти и т.п.
Сейчас все конфигурации, с которыми мы работает, имеют разрешение на открытие управляемых форм в обычном приложении. Вот я и подумал, что Ваш "Динамический список" это из управляемой формы.
КонструкторЗапроса.УстановитьДиалектSQL(ДиалектSQL, ИменованныеПараметры);
Например: есть таблица в MS SQL "Contracts" с полями "ID" (Строка 20, переменнная) и так далее. Мы завели это в 1С как внешний источник данных и создали соответствующий реквизит у справочника "Договора" в 1С (в нашем случаи Бухгалтерия 2.0)
Так вот если это поле показывать в консоли задач, то после нажатия там "Отображать пустые значения и идентификаторы вместо представления значений" и её "отжатия" (отключение, когда значёк меняется на картинку с буквами ID) начинает вылетать ошибка "Ошибка преобразования данных XML" с текстом:
==========================================================
{ВнешняяОбработка.ирОбщий.МодульОбъекта(13065)}: Ошибка при вызове метода контекста (XMLСтрока)
Ячейка.УстановитьТекст(XMLСтрока(ЗначениеЯчейки) + "." + XMLТип.ИмяТипа);
по причине:
Ошибка преобразования данных XML
===========================================================
Так же проблема возникает, если попытаться использовать эту ссылку внешнего источника в "Параметры" в консоли запросов. Она почему-то считает, что "Тип значения" это "Строка(0)" , хотя "Допустимые типы значения" показывает правильно. И конечно результатом становится не возможность выбора из списка (мне предлагают ввести строку) и не возможность потом выполнить запрос (если ввести строку):
============================================================
Текст запроса: Строка 28: {(28,83)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И СписаниеСРасчетногоСчетаРасшифровкаПлатежа.ДоговорКонтрагента.ДоговорИзРеестра <<?>>= &ДоговорИзРеестра
============================================================
Файлик-скриншот я приложил.
Вообще можно с этим что-то сделать?
Мы не можем интегрировать подсистему ИР в ERP 2.1 заказчика и поэтому нам приходится использовать "Толстый клиент (обычное приложение)" который, видимо, не умеет открывать управляемые формы внешних источников по умолчанию (даже если они созданы и заданы как основные). Тем самым даже в "Отбор и обработка объектов БД" нельзя поставить условие на ссылку внеш. источника...
Форма редактора параметров сеанса.
При изменении параметра и нажатии "Применить" - применение не происходит. После нажатия "Перечитать" параметр возвращается как был.
В версии 3.57.1 такой проблемы нет (проверено только что)
Конфигурация: Бухгалтерия 2.0
Платформа: 8.3.7.2027
Тип параметра сеанса (редактируемого): булево. Из Истина ставлю Люжь.
Конфигурация: ERP 2.0 изменённая
Платформа: 8.3.7.2027
В консоли запросов для типа "Задачи" у нас есть выборка:
ВЫБРАТЬ
ЗадачаИсполнителя.Ссылка КАК ЗадачаСУТП // и т.д.
ИЗ
Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
ГДЕ
НЕ ЗадачаИсполнителя.Выполнена
И ЗадачаИсполнителя.ТочкаМаршрута В(&ТочкаМаршрута)
ПоказатьЯ в "Параметры" переставляю "Тип" из "Значение" в "Список" и начинаю подбирать значения точек маршрутов нужных мне бизнес-процессов.
И тут возникает ошибка:
{ВнешняяОбработка.ирОбщий.МодульОбъекта(13068)}: Метод объекта не обнаружен (Метаданные)
ОткрытьФормуСпискаЛкс(РасширенноеЗначение.Метаданные().ПолноеИмя(), СтруктураОтбора, Ложь, Колонка.ЭлементУправления, Истина);
Видимо так как реквизит "ЗадачаИсполнителя.ТочкаМаршрута" у нас составново типа, то изначально значение элемента списка "неопределено", но вот когда я выбрал нужный бизнес-процесс, что бы потом из него выбрать точку маршрута, то возникает эта ошибка.
Она так же возникает и после выбора типа, перед тем когда я уже хочу подобрать точку маршрута.
Ошибку можно проигнорировать, так как даже после неё, видимо, нужный тип значения выбрался в списке и уже стандартные "..." его подбирает.
Я приложил несколько скриншотов:
1) До выбора типа бизнес-процесса. Где видна кнопка "Т" для выбора типа.
2) Где видна ошибка, но уже видно, что кнопка "Т" сменилась на "...", хотя слова в колонке "Тип значения" не поменялась ещё.
3) Я нажал ОК при ошибке на стадии №2 (или "закрыть" при просмотре подробностей при ошибке). После чего уже хочу выбрать нужню точку. Так же вызывается та же ошибка, но видно, что строчка в "Тип значения" поменялась.
4) Эту ошибка тоже можно проигнорировать и нормально выбрать точку маршрута (этот скан уже не имеет смысла)
Она и не нужна. Там возникает "быстрый выбор" и всё ок.
Именно при выборе точек маршрута просто не нужно вызывать Вам Ваш код, а оставить стандартную обработку самой платформы. Так как точки маршрутов задаются в метаданных, платформа всё прекрасно тут понимает.
УПП 1,3,77,2 Платформа 8,2,19,130
Открываю динамический список - выбираю бизнес-процесс (любой)
В командной панели жму Редактор объекта БД
Вылетает ошибка
{ОбщийМодуль.ирОбщий.Модуль(6643)}: Преобразование значения к типу Число не может быть выполнено
ОбщееКоличество = ОбщееКоличество + Количество;
В версии 3,60 работает без ошибок
1. У меня ключ /UC пустой. И при запуске с ним не отрабатывает авто запуск обработки "ирПортативный.epf", хотя он прописан в следующем ключе. Если же удалить /UC, то всё срабатывает.
2. Думаю стоит передавать также ключ /debug, т.к. после запуска предприятия, следующим шагом, с высокой степенью вероятности, будет подключение сеанса предприятия в конфигуратор для отладки. А значит нужно выставить разрешение отладки в предприятии (как раз этого можно избежать, передав ключ) и подцепить сеанс в конфигураторе (этого действия может и нельзя избежать).
__________
Пользуясь случаем, очередной раз скажу вам спасибо, за этот мощный инструмент!
Сразу пожелание, чтоб при автоматной генерации представления службы, добавлялась версия платформы.
И чтоб порт агента можно было выбрать любой, а не только из предложенных.
Можно в консоль запросов добавить кнопку "Редактировать таблицу результатов".
Видите ли, я в консоли в "Обработка строки результата" написал код, который редактирует объекты, которые выбираются в запросе. Но порой мне нужно обработать не все, а только пару строк.
Конечно можно выделить тут нужные ссылки, передать их в инструмент "Подбор и обработка объектов", в произвольный алгоритм вставить мой код (при этом его нужно будет поправить) и там уже обработать. Но это немного не удобно.
Удобнее если такие нужные мне строчки я мог бы оставить в таблице результата запроса, а потом в "Обработка строки результата" нажать выполнить и всё.
Мне вот совсем неясна логика разработчика, который назвал "Выбор" - выбор чего? куда?
было бы что-то "Выводить" или "Отображаемые поля результата" - я бы еще как-то понял... ;-)
Зато сегодня ловко извернулся и получил все что надо, хороший инструмент...
Есть документ
В нем несколько Тч или одна даже
Хочется взять из конкретной тч таких доков за период строки, проанализировать строку по реквизиту и по условию на реквизит удалить строки? Чтобы без программинга и запросов? Чисто в стилкмуниверсального подбора?
Как к ней обращаться, можно ссылочку на использование её функционала в системе?
Или это прячется за
Подбор и обработка объектов БД.
ЗагрузитьВнешнююКомпоненту(ИмяФайлаКомпоненты);
StrMatch = Новый("AddIn.StrMatchExtension");
с исходниками напряг. надо будет их откопать.(в любом случае есть исходники автора, ему респект, что выложил)
crt емнип не нужен. (т.е. msvcr71 и прочие не нужны)
но там же написано
Для работы требуется:
Проверить, есть ли в папке system32 файлы:
mfc71.dll и msvcr71.dll - если нет, то найти в инете и поместить их туда
а у меня написано, что не надо. есть разница?
StrMatch = Новый("AddIn.AddInNative.StrMatchExtension");
ps сколько дней прошло. никто наверное и не проверял)
Тип: портативные
При попытки использовать контекстную подсказку в "Консоль запросов" -> "Обработка строки результата" возникает ошибка:
{ВнешняяОбработка.ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой.МодульОбъекта(3304)}: Поле объекта не обнаружено (СтруктураТипаКонтекста)
ФормаПодсказки.СтруктураТипаКонтекста = СтруктураТипаКонтекста;
Реализован обход ошибки платформы 8.3.5-8.3.8, приводящей к пустым модулям обычных форм из программно созданных объектов внешних обработок, от чего возникали разные ошибки при работе компоненты контекстной подсказки. В рамках обхода объекты внешних обработок создаются по 2 раза, что несколько замедлит работу.
Не удалось зарегистривать COM-компоненту StrMatchExtension. Возможно требуется запуск от имени администратора
Система: Windows Server 2008 R2 Standart
Разрядность ОС: 64
Запускаете Толстый клиент в режиме "от Администратора".
Требуется наличие mfc71.dll и msvcr71.dll в системной папке ОС: для Win64 в "C:\Windows\SysWOW64"; для Win32 в "C:\Windows\System32".
Тогда проходит регистрация.
P.S. Скачанный из Интернета пакет во вложении.
Спасибо за файлы.
(1824) (1825) V.Nikonov,
Хех, оказалось туда размещать их не обязательно :) Например я эти файлы разместил в "D:\Байт\СервисныеОбработки\Портативные Инструменты Разработчика" и в обработке регистрации её же указал и - всё зарегистрировалось :)
Так что мусорить у клиентов не нужно.
Можно заложить работу с журналими документов в обработку "подбор и обработка объектов"?
Именно с журналом что можно делать - я не помню, а вот выбирать из журнала ссылки на документы порой удобнее, чем ставить в обработке "Многотабличная" и подбирать все типы входящие в журнал.
Например: нужно выбрать все документы, где "ЖурналЗаявлений.Ссылка.ИдентификаторЛичногоКабинета" заполнен и надо их обработать (перепровести например).
Начиная с версии 8.3.7.1759 доступна отладка по протоколу http
Для клиент-серверного варината включается при создании сервиса на сервере приложений путем указания доп. параметра -http для параметра -debug. В текщей версии инструмента "Управление службами серверов 1С" указать режим отладки http невозможно.
Вы, случайно, не забыли обновить номер версии в cf-ке? Скачал с версию 3.70, а в cf-ке указана версия 3.69
Спасибо!
{ВнешняяОбработка.ирОбщий.МодульОбъекта(9834)}: Поле объекта недоступно для записи (ОбменДанными)
Замена ссылок завершено, обработано 87 элементов за 0:00:03 (3 сек). Грубое среднее время обработки элемента - 34,48 мс
И при этом записи объектов не происходит, реквизит не меняется. Редактор объектов на эти элементы при попытке заменить вручную выдает такую же ошибку.
Обработка неправильного "Синт.Кошачий глаз": {ВнешняяОбработка.ирОбщий.МодульОбъекта(9836)}: Поле объекта недоступно для записи (ОбменДанными)
Редактором объекта также не записывает с той же ошибкой:
{ВнешняяОбработка.ирОбщий.МодульОбъекта(9836)}: Поле объекта недоступно для записи (ОбменДанными)
ОбменДанными = Неопределено;
Тут я могу ответить: тем, что не во всех конфигурациях на управляемых формах программисты задумываются об доступности совершения тех же действий из толстого клиента/внешнего соединения:
То у них в менеджере вызывается метод, общий модуль которого не доступен под толстым клиентом (тогда любая операция с документом валится из-за ошибки компиляции менеджера). То у них управляемая форма под толстым клиентом не открывается из-за тех же проблем с общими модулями и т.п. фигни.
1. Часть функций подсистемы завязана на 32-битные компоненты.
2. Редакторы запросов/алгоритмов лишатся подсветки синтаксиса и ряда других штатных возможностей
Кроме них, уверен, будут и пока не видимые препятствия, ради обхода которых придется отказаться еще от части возможностей. К финишу первого этапа придет думаю в лучшем случае 60% функционала, а скорее 50%. Затраты же будут огромными. Поэтому не вижу смысла этим заниматься при наличии простых возможностей доделки конфигураций для поддержки режима обычного приложения.
- В редакторе пользователей добавлено отображение и установка настроек управляемого приложения
- В интерфейсной панели добавлена команда "Связанный динамический список", открывающая обновляемый при активизации строки динамический список
- В динамическом списке добавлена кнопка "Связанный редактор объекта БД", открывающая обновляемый при активизации строки редактор объекта БД
Просто написал, может поможет придумать какой-нибудь универсальный метод сохранения...
Версия 3.70
{ОбщийМодуль.ирОбщий.Модуль(2158)}: Ошибка при установке значения атрибута контекста (Language)
Scr.Language = "javascript";
по причине:
Произошла исключительная ситуация (ScriptControl): A script engine for the specified language can not be created.
Не на всех компах установлено и для разовых действий смысла устанавливать не много. Плюс, имхо, зря убрано "Если ЛиЗамерВремени Тогда" контроль за временем выполнения достаточно редкая потребность основной массы программистов 1С.
ps. Либо проще всего
Попытка
Scr = Новый COMОбъект("MSScriptControl.ScriptControl");
Scr.Language = "javascript";
Время = Scr.Eval("new Date().getTime()");
Возврат Время;
Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
Возврат 0;
КонецПопытки; Показать1. Выполняем первый запрос. (нажимаю кнопку «выполнить», затем кнопку «Сравнить результат с предыдущим».
2. Выполняем второй запрос (нажимаю кнопку выполнить, затем кнопку «Сравнить результат с предыдущим»)
3. Открывается окно сравнений.
Список запросов в файлах
Платформа 8.3.6.2299
Конфигурация УТ 10.3
ИР вер. 3.73
Простейший запрос в СКД:
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация КАК Организация,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка КАК Сделка,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор КАК Регистратор,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК СуммаВзаиморасчетовНачальныйОстаток,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодСекунда
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(, , Авто, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
Показатьрезультат верный, а если этот же запрос, с такими же настройками полей в инструментах разработчика настроить, то расчет остатков неверный(присутствуют остатки на начало, учитывая то, что параметры не заданы и на начало вообще ничего нет, остатки на конец так же, - неверные)
Что-то изменилось в настройках правил поддержки конфигурации?
Обновился до версии 3.74, все объекты подсистемы встали "под замок" (на поддержке, не редактируется)
При попытке переключить режим любого объекта подсистемы на "Объект поставщика редактируется с сохранением поддержки" или "Объект поставщика снят с поддержки" выдается сообщение:
Возможность изменений необходима для общих команд (нужно настроить типы параметров команд) и для интерфейса ирРазработчик (устанавливаю галку "Переключаемый", чтобы прятать интерфейс, т.к. нужные команды добавлены в собственные интерфейсы)
- сделал удаление с контролем ссылочной целостности
- отобралось овер-много объектов
- удаляем...
.. и пошло в табло по каждому удаленному объекту сообщение об успешности удаления...
сидишь и ждесь пока несколько тысяч в табло нарисуются...
Смысл уведомлять о том, что заказанное действие прошло успешно? имеет смысл уведомлять о неуспешных "попытках" запланированного действия (типа не удалось удалить..)...? заодно и быстрее весь процесс будет идти...
Некритично.
Удаление с контролем ссылочной целостности:
1. Галочки ставишь/не ставишь - удаляет весь список
2. во время удаления прервать нельзя
или я может на так пользуюсь :(
//ВнешниеОбработки.Создать("I:\FSV\Обработки\ИРЗ_371\Модули\ирКонсольЗапросов.epf").ОткрытьДляОтладки(Запрос);
выдала ошибку в Консоли запросов.
{Форма.Форма.Форма(5707)}: Метод объекта не обнаружен (ТабличноеПолеВставитьКолонкуНомерСтрокиЛкс)
ирОбщий.ТабличноеПолеВставитьКолонкуНомерСтрокиЛкс(ТабличноеПолеРезультата);
На ЗУП 2.5, вот в этом запросе:
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
СотрудникиОрганизаций.Ссылка КАК Сотрудник,
СотрудникиОрганизаций.Физлицо КАК Физлицо,
СотрудникиОрганизаций.Должность,
СотрудникиОрганизаций.ПодразделениеОрганизации,
СотрудникиОрганизаций.ЗанимаемыхСтавок,
СотрудникиОрганизаций.ДатаНачала КАК ДатаПриема,
СотрудникиОрганизаций.ДатаОкончания КАК ДатаУвольнения,
ИСТИНА КАК НапомнитьПоЗавершении,
СотрудникиОрганизаций.ИспытательныйСрок,
СотрудникиОрганизаций.ГрафикРаботы,
СотрудникиОрганизаций.Наименование КАК Наименование
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ПО СотрудникиОрганизаций.Ссылка = РаботникиОрганизаций.Сотрудник
ГДЕ
ВЫБОР
КОГДА СотрудникиОрганизаций.ОбособленноеПодразделение = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА СотрудникиОрганизаций.Организация
ИНАЧЕ СотрудникиОрганизаций.ОбособленноеПодразделение
КОНЕЦ = &Организация
И СотрудникиОрганизаций.ВидДоговора В (&ВидыТрудовыхДоговоров)
И (РаботникиОрганизаций.Сотрудник ЕСТЬ NULL
ИЛИ РаботникиОрганизаций.Регистратор = &Ссылка)
И (&НеУказанаДатаНачалаПериода
ИЛИ СотрудникиОрганизаций.ДатаНачала >= &ДатаНачалаПериода)
И (&НеУказанаДатаОкончанияПериода
ИЛИ СотрудникиОрганизаций.ДатаНачала <= &ДатаОкончанияПериода)
УПОРЯДОЧИТЬ ПО
Наименование Показать
Можно как-то (без программирования/консолей) получить для удаления список записей независимого регистра сведений по условию на какой-то реквизит регистра, типа
Выбрать из РегистрСведения.МойРегистр записи
где РеквизитТипаДокумент в СпискеДокументов
..
?
так и не нашел нужной возможности
до нужного регистра добрался.
имею реквизит "Документ" - так и не смог найти как в "Отбор компоновки" сделать что-то такое чтобы отобрать записи регистра по реквизиту "документ" с нужным видом документа и по помеченным на удаление...
1. Утечка памяти в каком процессе?
2. Какова скорость утечки?
3. Какие средства мониторинга использованы для сбора сведений об утечке?
4. Четкая последовательность действий. Начинаем с запуска сеанса клиентского приложения. Открывает консоль запросов. Выполняем конкретный запрос. Наблюдение утечки. Ее устранение.
Все измерять нужно в монопольном режиме (чтобы другие пользователи не работали в базах кластера 1С).
Желательно оформить эту проблему в виде отдельной темы, т.к. ее решение скорее всего требует вникания в детали.
Конструктор запроса ИР
Листаю по "Доступная таблица"
При позиционировании на ТЦСобытия.ЗадачиПоИсполнителю, Тип=Виртуальная
вываливается ошибка
{ВнешняяОбработка.ирОбщий.МодульОбъекта(7791)}: Ошибка при установке значения атрибута контекста (Текст)
ПостроительЗапроса.Текст = Запрос.Текст;
по причине:
{(1, 16)}: Таблица не найдена "Задача.ТЦСобытия.ЗадачиПоИсполнителю"
ВЫБРАТЬ Т.* ИЗ <<?>>Задача.ТЦСобытия.ЗадачиПоИсполнителю(, ЛОЖЬ) КАК Т ГДЕ ЛОЖЬ
в табло выдается
"Не удалось найти в структуре хранения БД описание таблицы Задача.ТЦСообщения.ЗадачиПоИсполнителю"
Основные изменения:
- Реализовано выполнение некоторых команд системы с элевацией
- В редакторе объекта БД для независимого регистра сведений реализован автоматически переключаемый режим менеджера записи
- В консоли компоновки данных теперь по умолчанию отключено использование пользовательских настроек
Исправлено (1907)
-Папа, ты с кем это сейчас разговариваешь?
вообщем-то может оно и правильно, достало только в плюсики целиться.. ;-)
"Динамический список (ИР)", в списке - перечень документов - делаю мультиселект - как сделать выбор этого мультиселекта? или штрямкать только по одному элементу?
- ну так как раз выбор мультиселекта и не работает в форме, открытой по подбору...
{Форма.УстановитьГраницыИтогов.Форма(18,49)}: Переменная не определена (ирОбщий)
ЭлементыФормы.МинимальнаяДата.Доступность = Не <<?>>ирОбщий.РежимСовместимостиМеньше8_3_4Лкс();
{Форма.УстановитьГраницыИтогов.Форма(34,1)}: Переменная не определена (ирОбщий)
<<?>>ирОбщий.ИнициализироватьФормуЛкс(ЭтаФорма, "Обработка.ирУправлениеИтогамиРегистров.Форма.УстановитьГраницыИтогов");
Выявлено в ИРмоб-3.77. При анализе с использованием режима "Подобные" с включенной компонентой НечеткоеСравнение справочника ЗначенияСвойств, сначала указано требование по равенству "Владельца", затем поиск похожих Наименований... Происходит формирование единого списка объектов для анализа вместо разбиения на группы по владельцу. В результате формируются группы замены с разными Владельцами!
Вероятно придется формировать несколько списков по предварительным условиям поиска на равенство, затем обрабатывать списки по реквизиту поиска подобных... Соответственно, надо что бы условие поиска "Похожих" всегда должно быть Последним, а возможно и Единственным с таким критерием.
{Обработка.ирПлатформа.МодульОбъекта(4255)}: Ошибка при вызове метода контекста (ПереместитьФайл)
ПереместитьФайл(ФайлБлока.ПолноеИмя, ИмяВременногоФайла);
по причине:
Ошибка переименования файлов
по причине:
Файл не обнаружен 'C:\Documents and Settings\username\Local Settings\Temp\IndexPackBlock.data'
ОС Windows XP SP3.
Сейчас ещё проверил: загрузил чистые ИР, закрыл конфигураторы, 1С 8.3.6.2449:
1. Подсистема 3.77 -- ошибка
2. Подсистема 3.72 -- нет ошибки, синтакс-помощник открывается
3. Подсистема 3.74 -- нет ошибки
Ошибка такая: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован
Начинаю только осваивать вашу разработку.
Скачал "Портативную версию". На Демо версии "Управляемого приложения"(платформа 8.3.8) открываю обработку "ирПортативный.epf".
После открытию нажимаю "Запустить обычное приложение". Приложение запускается в обычном режиме, но потом появляются ошибки и ничего не открывается.
ЗЫ: пробовал на УТ 11.2 и БП 3.0, аналогичная проблема. На другом ПК запустилось, без ошибок. Видимо локальная проблема. Антивирус отключал, запускал 1С от имени админа, да и права админа...
ЗЫ: Win7x64, платформа 8.3.8.2054
Отключал оба.
Спасибо. Буду осваивать.
select rtrim(ltrim("skdjfhsdkjfhsdkjfh"))приводит к бесконечному (пока хватает памяти) построению синтаксического дерева (судя по строке статуса), при этом также бесконечно в окно сообщений выводится сообщение об ошибке.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 15126
Создание 23.09.07 19:33
Обновление 11.06.25 07:51
Просмотры 839145
Загрузки 50096
Рейтинг
2525
Комментарии 2961
Код открыт Да
Рубрики Инструментарий разработчика
Кому
Системный администратор
,
Разработчик
Тип файла Конфигурация (md, cf)
Платформа 1С:Предприятие 8
Конфигурация
1C:Бухгалтерия
,
1С:ERP Управление предприятием 2
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)