Extcompt 1с что это
Эта статья дает представление о работе внешних компонент в системе «1С: Предприятие».
Будет показан процесс разработки внешней компоненты для системы «1С: Предприятие» версии 8.2, работающей под управлением ОС семейства Windows с файловым вариантом работы. Такой вариант работы используется в большинстве решений, предназначенных для предприятий малого бизнеса. ВК будет реализована на языке программирования C++.
Внешние компоненты «1C: Предприятие»
- с использованием Native API
- с использованием технологии COM
Структура ВК
Внешняя компонента системы «1С: Предприятие» представлена в виде DLL-библиотеки. В коде библиотеки описывается класс-наследник IComponentBase. В создаваемом классе должны быть определены методы, отвечающие за реализацию функций внешней компоненты. Более подробно переопределяемые методы будут описаны ниже по ходу изложения материала.
Запуск демонстрационной ВК
- Выполнить сборку внешней компоненты, поставляемой с подпиской ИТС и предназначенной для демонстрации основных возможностей механизма внешних компонент в 1С
- Подключить демонстрационную компоненту к конфигурации 1С
- Убедиться в корректной работоспособности заявленных функций
Компиляция
Демонстрационная ВК расположена на диске подписки ИТС в каталоге «/VNCOMP82/example/NativeAPI».
Для сборки демонстрационной ВК будем использовать Microsoft Visual Studio 2008. Другие версии данного продукта не поддерживают используемый формат проекта Visual Studio.
Открываем проект AddInNative. В настройках проекта подключаем каталог с заголовочными файлами, необходимыми для сборки проекта. По умолчанию они располагаются на диске ИТС в каталоге /VNCOMP82/include.
Результатом сборки является файл /bind/AddInNative.dll. Это и есть скомпилированная библиотека для подключения к конфигурации 1С.
Подключение ВК к конфигурации 1С
Создадим пустую конфигурацию 1С.
Ниже приведен код модуля управляемого приложения.
Если при запуске конфигурации 1С не было сообщено об ошибке, то ВК была успешно подключена.
В результате выполнения приведенного кода в глобальной видимости конфигурации появляется объект ДемоКомп, имеющий свойства и методы, которые определены в коде внешней компоненты.
Демонстрация заложенного функционала
Произвольное имя внешней компоненты
Задача: Изменить имя внешней компоненты на произвольное.
В предыдущем разделе использовался идентификатор AddInNativeExtension, смысл которого не был пояснен. В данном случае AddInNativeExtension — это наименование расширения.
В коде ВК определен метод RegisterExtensionAs, возвращающий системе «1С: Предприятие» имя, которое необходимо для последующей регистрации ВК в системе. Рекомендуется указывать идентификатор, который в известной мере раскрывает суть внешней компоненты.
Приведем полный код метода RegisterExtensionAs с измененным наименованием расширения:
В приведенном примере имя ВК изменено на SomeName. Тогда при подключении ВК необходимо указывать новое имя:
Расширение списка свойств ВК
- Изучить реализацию свойств ВК
- Добавить свойство строкового типа, доступное для чтения и записи
- Добавить свойство строкового типа, доступное для чтения и записи, которое хранит тип данных последнего установленного свойства. При установке значения свойства никаких действий не производится
- Убедиться в работоспособности произведенных изменений
Полное описание методов, включая список параметров подробно описан в документации, поставляемой на диске ИТС.
Рассмотрим реализацию приведенных методов класса CAddInNative.
В демонстрационной ВК определены 2 свойства: Включен и ЕстьТаймер (IsEnabled и IsTimerPresent).
В глобальной области видимости кода библиотеки определено два массива:
которые хранят русское и английское названия свойств. В заголовочном файле AddInNative.h определяется перечисление:
- Добавить имя добавляемого свойства в массивы g_PropNames и g_PropNamesRu (файл AddInNative.cpp)
- В перечисление Props (файл AddInNative.h) перед ePropLast добавить имя, однозначно идентифицирующее добавляемое свойство
- Организовать память под хранение значений свойств (завести поля модуля компоненты, хранящие соответствующие значения)
- Внести изменения в методы GetPropVal и SetPropVal для взаимодействия с выделенной на предыдущем шаге памятью
- В соответствии с логикой приложения внести изменения в методы IsPropReadable и IsPropWritable
Перечисление Props будет иметь вид:
Для значительного упрощения кода будем использовать STL C++. В частности, для работы со строками WCHAR, подключим библиотеку wstring.
Для сохранения значения метода Тест, определим в классе CAddInNative в области видимости private поле:
Для передачи строковых параметров между «1С: Предприятие» и внешней компонентов используется менеджер памяти «1С: Предприятие». Рассмотрим его работу подробнее. Для выделения и освобождения памяти соответственно используются функции AllocMemory и FreeMemory, определенные в файле ImemoryManager.h. При необходимости передать системе «1С: Предприятие» строковый параметр, внешняя компонента должна выделить под нее память вызовом функции AllocMemory. Ее прототип выглядит следующим образом:
где pMemory — адрес указателя, в который будет помещен адрес выделенного участка памяти,
ulCountByte — размер выделяемого участка памяти.
Пример выделения памяти под строку:
Для удобства работы с строковыми типами данными опишем функцию wstring_to_p. Она получает в качестве параметра wstring-строку. Результатом функции является заполненная структура tVariant. Код функции:
Тогда соответствующая секция case оператора switch метода GetPropVal примет вид:
Метода SetPropVal:
Для реализации второго свойства определим поле класса CaddInNative
в котором будем сохранять тип последнего переданного значения. Для этого в метод CaddInNative::SetPropVal добавим команду:
Теперь при запросе чтения значения второго свойства будем возвращать значение last_type, чего требует обозначенное задание.
Проверим работоспособность произведенных изменений.
Для этого приведем внешний вид конфигурации 1С к виду:
Расширение списка методов
- Расширить функционал внешней компоненты следующим функционалом:
- Изучить способы реализации методов внешней компоненты
- Добавить метод-функцию Функц1, которая в качестве параметра принимает две строки («Параметр1» и «Параметр2»). В качестве результата возвращается строка вида: «Проверка. Параметр1, Параметр2»
- Убедиться в работоспособности произведенных изменений
- Добавить имя метода в массивы g_MethodNames и g_MethodNamesRu (файл AddInNative.cpp)
- Добавить осмысленный идентефикатор метода в перечисление Methods (файл AddInNative.h)
- Внести изменения в код функции GetNParams в соответствии с логикой программы
- При необходимости внести изменения в код метода GetParamDefValue, если требуется использовать значения по умолчанию параметров метода.
- Внести изменения в функцию HasRetVal
- Внести изменения в логику работы функций CallAsProc или CallAsFunc, поместив туда непосредственно исполняемый код метода
Отредактируем функцию GetNProps, чтобы она возвращала количество параметров метода «Тест»:
Внесем изменения в функцию CAddInNative::GetParamDefValue:
Благодаря добавленной строке
в случае отсутствия одного или нескольких аргументов соответствующие параметры будут иметь пустое значение (VTYPE_EMPTY). Если необходимо наличие значения по умолчанию для параметра, следует задать его в секции eMethTest оператора switch функции CAddInNative::GetParamDefValue.
Так как метод «Тест» может возвращать значение, необходимо внести изменения в код функции HasRetVal:
И добавим исполняемый код метода в функцию CallAsFunc:
Скомпилируем компоненту и приведем код конфигурации к виду:
Таймер
- Изучить реализацию таймера в демонстрационной ВК
- Модифицировать метод «СтартТаймер», добавив возможность передавать в параметрах интервал срабатывания таймера (в миллисекундах)
- Убедиться в работоспособности произведенных изменений
Рассмотрим реализацию таймера в демонстрационной ВК.
Так как мы рассматриваем процесс разработки внешней компоненты для ОС семейства Windows, не будем рассматривать реализацию таймера в других операционных системах. Для ОС GNU/Linux, в частности, реализация будет отличаться синтаксисом функции SetTimer и TimerProc.
В исполняемом коде вызывается метод SetTimer, в который передается функция MyTimerProc:
Идентефикатор созданного таймера помещается в переменную m_uiTimer, чтобы в последствии его можно было отключить.
Функция MyTimerProc выглядит следующим образом:
Приведем код метода CallAsProc к виду:
Теперь проверим работоспособность. Для этого в модуле управляемого приложения конфигурации напишем код:
Взаимодействие с системой «1С: Предприятие»
Тип данных tVariant
При обмене данными между внешней компонентой и системой «1С: Предприятие» используется тип данных tVariant. Он описан в файле types.h, который можно найти на диске с ИТС:
- смесь (union), предназначенную непосредственно для хранения данных
- идентификатор типа данных
- Определение типа данных, которые в данный момент хранятся в переменной
- Обращение к соответствующему полю смеси, для непосредственного доступа к данным
Приложение
Hasher Pro 1C - это новый подход в очистке кэша 1С:Предприятия. В сообществе временные файлы пользователя 1С называют по разному: кэш, кеш, хеш и т.д. Как правило этот мусор хранится годами на вашем компьютере и занимает очень много места - сотни гигабайт могут быть заняты бесполезными файлами. Hasher Pro 1C сочетает в себе ТРИ варианта очистки Кэша: 1) Быстрый и безопасный, подходит для любого пользователя 1С. 2) Полный и более тщательный, для программистов и уверенных пользователей. 3) Агрессивный с дополнительными административными возможностями. * А так же интерактивное создание скрипт файлов VBS или BAT для отложенной очистки или передачи скрипта коллегам. Используйте обработку Hasher Pro 1C как незаменимый инструмент при работе с 1С:Предприятием 8.1, 8.2 и 8.3 в клиент-серверном и файловом варианте. Поддержка толстого клиента, тонкого клиента, управляемых форм, интерфейса Такси. Совместимость: Windows XP/Vista/7/8/10 (x32/x64) + Серверные платформы.
При очистке кэша и удалении временных файлов 1С важно понимать какие файлы за что отвечают, и не переборщить с удалением.
В этом вам поможет Hasher Pro 1C 8
Функционал обработки разделен на три режима очистки:
- Быстрая очистка - Безопасный и быстрый способ. Смело удаляйте кэш информационных баз 1С:Предприятия без последствий.
- Полная очистка - Максимальная очистка кэша 1С:Предприятия и операционной системы.
- + Очистка временных файлов пользователя и операционной системы.
- + Обновить интерфейс - обновляет командный интерфейс, рабочий стол и открытые формы с учетом текущих значений функциональных опций.
- + Clear cache - встроенное средство 1С:Предприятия, очистка кэша клиент-серверных вызовов. Используется ключ: "\ClearCache" при завершении работы сеанса 1С:Предприятия.
- Агрессивная очистка - Комплекс мер для оптимальной очистки и оптимизации работы 1С:Предприятия. Только для опытных пользователей.
- + Завершить рабочие процессы 1С:Предприятия - принудительное завершение процессов "1cv8". Полезно завершать рабочие процессы в связке с очисткой кэша текущей информационной базы или при полной очистке кэша. Позволяет освободить оперативную память от всех запущенных процессов 1С:Предприятия.
- + Перезагрузить Агент сервера 1С:Предприятия - происходит перезапуск сервера 1С:Предприятия 8.x. Запуск этого способа производится перед очисткой файлов кэша, после очистки кэша работа службы возобновляется.
- + Дедовский способ ''Очистить кэш батником'' - Создается пакетный файл "Hasher.bat" на рабочем столе пользователя со стандартными командами очистки кэша 1С:Предприятия.
Запуск сценария очистки возможен тремя вариантами:
- Запустить сценарий средствами 1С Предприятия - очистка кэша производится стандартными средствами 1С, если невозможно получить доступ к файлу происходит отложенный запуск задач скриптом VBS, при этом работа 1С прекращается.
- Запустить сценарий средствами Windows Script Host (.vbs) - скриптовыйязык программирования , интерпретируемый компонентом Windows Script Host . Он широко используется при создании скриптов в операционных системах семейства Microsoft Windows .
- Запустить сценарий средствами Командной строки (.bat) - текстовый файл , содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла, программа-интерпретатор cmd.exe читает его строка за строкой и последовательно исполняет команды.
В программе имеется уникальная возможность создания скриптовых файлов для очистки кэша:
Инструкция создания скрипт файла:
- Выбрать требуемые объекты и способы очистки;
- Нажать "Создать скрипт (F12)";
- Выбрать вариант скриптового файла: VBS или BAT;
- Сохранить скрипт в удобном месте.
- Внимательно изучите скрипт файл при помощи любого текстового редактора.
- Запустите под правами администратора.
Нажмите ""Сканировать систему (F5)"" в результате получите исчерпывающий анализ кэша на вашем компьютере:
- Обратите внимание все объекты в Hasher Pro 1C 8 сопровождаются подробным описанием.
Для обратной связи используйте "Предложить функцию (F1)":
Данные статьи и комментарии к ним вдохновляли Hasher Pro 1C 8 своими функциями и идеями:
- Чистка кэша 1С 8.1 - 8.2 - 8.3 (удаление кэша для ВСЕХ пользователей терминального сервера) + запуск с ключом
- Чистка кэша 1С. Универсальная обработка
- Очистка кэша пользователя
- Очистка кэша 1С из сеанса 1С Предприятие
- Удаление профайлов пользователей 1с
- Очистка кэша 1С из 1С
*Обработка находится в состоянии расширения функционала. Каждый отклик важен. Желаем вам приятной очистки кэша.
Профессионалы используют Hasher Pro 1C
04.07.2019:
Появилась поддержка управляемых форм:
Подарить Автору 75 рублей, за труды и старания:
Специальные предложения
user701945_d_passat; M.Nikitin; amoarok; movel; logarifm; C4H9O2N; ferasinka; mrWorf; Бурухтан Второй Второй; Йожкин Кот; tormozit; ya.Avoronov; + 12 – Ответить
(1) awa, плюс поставил вам за наблюдательность. Не совсем так, "hasher" в переводе с иностранных значит "мясорубка". Это довольно символично для данной программы и конечно созвучно с "cache". Вот как то так. Не в названии конечно сила)
Сразу же, с первого взгляда, за радующий глаз цветной интерфейс большой плюс! Видно что автор очень сильно постарался. Утилита важная, нужная. Как правило, самое важное держать под рукой скрипт чистки кэшей пользователей без перезатирания списка баз. Я про вот этот фрагмент:
@FOR /D %%i in ('%userprofile%\AppData\Local\1C\1Cv8\. -. -. -. -. ') do rd /s /q '%%i'
@FOR /D %%i in ('%userprofile%\AppData\Roaming\1C\1Cv8\. -. -. -. -. ') do rd /s /q '%%i'
Еще не дочитал до конца, а по анализу кода понял большую часть публикаций по чисткам кэшей, перечисленных автором. Тоже большой плюс, что все собрано воедино.
Код даже внутри написан четко, структурировано. Браво. Даже это из-за спешки не всегда удается.
Бета-тестирование сразу же провел в агрессивном режиме. Что называется "на всю катушку". Даже у профессионалов возникает трудность с запоминанием и поиском что где лежит на незнакомой машине. Я не системный администратор и даже мне полезно знать где находятся кэши файлов. Было дело на диске "С" не хватало места, да к тому же диск был старый и пришлось настраивать операционку Windows 7 для переноса всех временных файлов. Сразу же
Еще одна деталь может быть полезна. Из кода - файл со списком баз ibases.v8i - бывает лежит где-то на сервере и с него "читаются" данные на компьютеры пользователей. По фрагменту кода видно анализ ситуаций:
Возможно нужна важная доработка по данному направлению по работе со списком баз. Еще буду смотреть. Универсальных то обработок и механизмов не бывает.
Однако, большой плюс данной графической обработки с красивыми кнопками как в большинстве задач бывает просто нужно почистить кэш на ПК пользователя (или сервере терминалов, сервере 1С 8) без анализа что приводит к причинам замедления работы у ленивых эникейщиков и админов и программистов-администраторов 1С двумя способами:
1. параметром командной строки запуска 1С 8 (или в графическом меню) /ClearCache и, бывает, такая команда остается постоянной и никаких Вам проблем и забот с пользователям. Минус - догадайтесь сами: постоянные жалобы - почему все так медленно работает. Убрали и вуаля все залетало, но ошибки стали появляться. Особенно, если забыть про параметр. Компьютеры в большой торговой организации у конечных пользователей бывают старые
2. запуск следующего фрагмента скрипка Windows:
Что поделать, программисту 1С сейчас просто необходимо на элементарном уровне изучать возможности скриптов для автоматизации собственной работы, особенно при работе на аутсортсинге.
В статье рассказывается что такое Кэш 1С и как его можно самостоятельно очистить несколькими способами. В конце публикации расположена подробная видеоинструкция.
Что же такое Кэш вообщем и Кэш 1С в частности. В переводе с английского cashe означает тайник либо хранилище. Впервые данный термин в компьютерном слэнге был использован в 1967 году во время подготовки стать для журнала «IBM Systems Jornal» (ссылка на статью в векипедии) . Векипедия дает данному термину следующее определение Кэш – промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Процесс кэширования используется как при работе, самого компьютера, так и при работе отдельных программ, 1С не является исключением. Кэшом 1С называется область на компьютере, куда платформа в процессе работы записывает наиболее часто используемую информацию для более быстрого доступа к ней, это может быть служебная информация пользователей, список отборов, шрифтов, расположение окон. При возникновении каких-либо сбоев Кэш начинает обрабатываться неправильно, и программа начинает работать некорректно. Это может произойти в случае аварийного завершение работы программы, например при отключении питания компьютера, динамического обновления программы, обновления без завершения работы пользователей и др.
В случае возникновения таких сбоев необходимо произвести чистку Кэша 1с, данную процедуру рекомендуется делать не только при возникновении сбоев, но и в рамках регламентного обслуживания программы, ведь часто в КЭШе хранятся данные, которые программа уже не использует и они только занимают место на компьютере, замедляя при этом работу 1с.
Существует несколько способов чистки Кэша 1С, давайте разберем подробно каждый из них
Первый и самый простой это удалить из списка базу, запомнив и сохранив ее путь и добавить ее туда снова. Сохранить путь проще всего следующим образом: выделить базу в списке, нажать на кнопку «изменить», откроется окно редактирование информационной базы, в котором нам нужно выделить строчку, которая находится в поле «каталог информационной базы». Кликнуть по ней правой кнопкой мыши и нажать копировать, записывать тем самым путь к базе в буфер обмена вашей операционной системы, его можно либо оставить там, до момента добавления базы, либо сохранить в любой текстовый редактор, например в Microsoft Word. И нажать на кнопку отмена, закрыв тем самым окно редактирование информационной базы
После этого в окне конфигурации жмем на кнопку «Удалить» и утвердительно отвечаем на вопрос программы
Базу из списке мы удалили, теперь необходимо ее добавить, для этого в окне платформы жмем на кнопку «Добавить», устанавливаем переключатель в «Добавление в список существующей информационной базы» и жмем «Далее»
В открывшемся окне в поле «Укажите название информационной базы» руками пишем название нашей базы, в поле «Каталог информационной базы» копируем пусть нашей базы, который мы сохранили на предыдущем шаге и жмем «Далее»
На следующем шаге оставляем все по умолчанию и жмем «Готово»
База в список у нас добавлена, Кэш для нее очищен
Данный способ хоть и является самым простым, но имеет ряд недостатков, во-первых при нем файлы Кэша не удаляются с компьютера, а лишь отвязываются от базы при ее удалении, оставаясь в компьютере и засоряя тем самым его память, во-вторых если в Вашем списке не одна база а несколько, такую процедуру придется проделывать для каждой базы. Этим способом рекомендуется пользоваться в тех случаях, когда необходимо быстро восстановить работу базы и нет времени разбираться или ждать программиста. Например, программа дала сбой, а Ваш программист в данный момент занят и не может Вам помочь и чтобы не останавливать работу, Вы чистите Кэш этим способом, но в дальнейшем будет необходимо провести его чистку другим способов с удалением файлов Кэша, о котором я рассажу далее.
Второй способ это вручную удалить файлы Кэша с компьютера. Чтобы это сделать, для начала нужно определить их местонахождение. Кэш 1C в Windows хранится в следующих папка профиля пользователя это Roaming и Loсal. Данные папки расположены в пути: C:\Users\ИмяПользователя\AppData. Причем папка AppData по умолчанию скрыта. Попасть в нее можно двумя способами: это либо включить отображение скрытых папок, перейдя в Панель управления→Параметры папок→Вкладка «Вид»→Показывать скрытые файлы, папки и диски
Либо в проводнике вручную, после имени пользователя написать строчку \AppData и нажать на клавиатуре Enter
Либо если мы вдруг не знаем имя пользователя в проводнике можно написать следующую строчку: %userprofile%\AppData, нажать Enter и мы также попадем в эту папку
Попав в папку AppData, поочередно заходим в папки Local и Roaming и переходим в каждой из них в папку 1С, а в ней в 1Cv8 и если есть 1Сv82 то в нее тоже
В этих папках (1cV8, 1Cv82) мы видим множество папок с непонятным называнием, это и есть Кэш 1С. Все эти папки необходимо выделить и удалить, обязательно закрыв перед этим 1С, удалять можно смело, никакие данные из Вашей базы при этом не пострадают, а все необходимые папки платформа вновь создаст при очередном запуске
Данный способ является самым эффективным, но немного трудоемким. Его можно упросить, создав специальный файл, который будет проделывать все эти процедуры автоматически, вам лишь необходимо будет запустить его под именем администратора. Это файл будет иметь расширение.bat, в народе такие файлы называется «батник». Создать его можно следующим образом, открываем блокнот Windows и пишем в нем следующие команды:
Далее выбираем Файл→Сохранить как→выбираем место куда сохраняем, пишем название файла (например «cashe») и в названии меняем расширение с .txt на .bat, должно получиться как на картинке ниже, и жмем сохранить
Если вдруг не получается создать такой файл или Вам лень это делать, но можете скачать его готовый по следующей ссылке . Данный способ чистки Кэша 1С является самым простым, не требует никаких специальных знаний и навыков и выполняется за считанные секунды. Вам лишь необходимо запустить данный файл
И в заключении расскажу еще об одном способе очистки Кеша 1С - это установить дополнительный параметр запуска информационной базы. У данного способа есть свои плюсы и минусы, к плюсам я бы отнес, то, что Кэш очищается при каждом запуске 1С, к минусам – снижение общей производительности 1С. Еще отмечу, что данный способ подходит только для режима запуска Тонкий клиент. Данным способ рекомендуется использовать, тогда, когда ошибки базы связанные с Кэшем появляются систематически. Чтобы выставить данный параметр запуска, необходимо в окне платформы выбрать нужную информационную базу, нажать на кнопку «Изменить», в открывшемся окне ничего не меняя нажать «Далее»
Откроется окно редактирования информационной базы, где в дополнительных параметрах запусках необходимо написать строчку /ClearCache и кликнуть «Готово»
Обращу внимание, что после очистки Кэша Ваша база будет запускаться немного дольше обычного, т.к. программа будет создавать необходимые ей для работы временные файлы, но это только в первый раз после чистки, следующие разы запуск будет проходить быстрее. Также список пользователей базы (при их наличии) после очистки Кэша будет пуст, нужно будет выбрать нужного пользователя повторно
Если остались вопросы, можете задать их в комментариях, если же не хотите тратить свое время и доверить чистку Кэша 1С профессионалам, можете написать нам через форму обратной связи или позвонить по телефону который указан на сайте. будет рады Вам помочь.
За несколько лет сначала вынужденного, а потом и вполне занимательного администрирования 1С у меня накопился набор решений под большинство особенностей продукта. Предлагаю отложить в сторону высокие материи про кластеры и тюнинг SQL, и перетряхнуть запасы скриптов и механизмов, которые облегчают жизнь с 1С.
Будут как простые инструменты создания новых пользователей и мониторинга "все ли вышли из базы", так и более изощренные интерфейсы проверки целостности базы и ее перемещения.
Как у большинства сложных приложений, у 1С через некоторое время работы вылезают странные ошибки, и возникает порой необъяснимое поведение. Специальные люди по 1С советуют в таких случаях почистить кэш.
Если запустить 1С с параметром /ClearCache, то будут очищены только клиент-серверные запросы. Локальные метаданные останутся и их нужно удалять отдельно на уровне файлов и папок. Эти данные хранятся в профиле пользователя, в папках с длинными названиями из GUID баз данных. Если баз на сервере немного, то такой кэш нетрудно удалить руками. Но если БД исчисляется десятками, то чистке вручную вы не обрадуетесь.
В подобных ситуациях выручит скрипт на Powershell, который запускается каждый раз при выходе пользователя из системы:
И никаких связанных со старым кэшем проблем.
Для исправления испорченной файловой базы в поставку 1С входит утилита chdbfl.exe, которая просто считывает содержимое базы во временный файл. Если какие-то данные считать не может — пропускает. При этом у нее нет ключей запуска для автоматизации, и проверку приходится запускать вручную.
Вообще, правильнее запускать проверку БД конфигуратором, но этот процесс проходит значительно дольше. Если же использовать только проверку физической целостности средствами chdbfl.exe, то не забывайте делать резервную копию из-за возможной потери данных.
Для баз 8.1 Андрей Скляров создал хороший инструмент Check1CD, с двумя параметрами запуска: "исправлять найденные ошибки" и “путь к базе”.
Но в Check1CD не хватает двух вещей:
Раз есть "хотелка" и немного свободного времени, то почему бы не попробовать решить вопрос самостоятельно?
Доработать код для передачи параметров через ключи командной строки — дело техники.
С выходом 1С 8.2 возникла проблема — путь к chdbfl менялся с установкой нового релиза. Что ж, дополним скрипт:
Надо сказать, недавно был опубликован исходный код Check1CD. Да, тоже на AutoIT.
Аналогичный механизм можно применять и для автоматического запуска различных регламентных механизмов, где нужно запускать 1С и ждать завершения операции.
При различных регламентных операциях с 1С (ночное обновление конфигурации или бэкап в .dt) важно обеспечить отсутствие подключенных к ней пользователей. Можно конечно запускать 1С: Предприятие с ключом /C ЗавершитьРаботуПользователей, но это не всегда удобно, да и хочется же потом написать личное письмо с рекомендациями по устранению склероза.
Можно использовать штатную возможность подключения к 1С через COMConnector и скрипт на AutoIT. Код написан под 1С 8.1 и позволяет выкинуть пользователей из базы с записью в журнал.
Но операцию иногда нужно проворачивать по просьбе самого пользователя, который запустил "тяжелый" отчет и повесил 1С. Если не хотите решать эти вопросы самостоятельно, то просто выведите любителям “тяжелых” отчётов ярлык на скомпилированный скрипт:
Еще COMConnector помогает проверить наличие обновлений конфигурации, получить какую-то информацию из базы, и автоматизировать заведение пользователей в 1С.
На мой взгляд, создавать новых пользователей 1С должен системный администратор, а не программист 1С. Но последнему нужно сделать процесс максимально простым. Чтобы администратору не приходилось "заглядывать" в каждую базу отдельно, можно использовать еще один скрипт.
Юрлиц развелось слишком много — нужно разбивать на столбцы.
Занятно, но после смены нескольких поколений администраторов в одной компании из далекого прошлого новенькие уже не знали как создать пользователя вручную.
Если нужно перенести базу 1С: Предприятия вместе с ее данными в SQL на другой сервер, то делать это вручную целесообразно только для 1-2 БД.
Список баз для миграции можно брать и из файла, а лог выводить в текстовый файл. Аналогичным образом можно конвертировать несколько десятков баз из файловых в SQL простой выгрузкой-загрузкой в .dt
Конечно, это далеко не все, что можно автоматизировать в связке с 1С. Но разного рода обмены, получение real-time информации из 1С в других приложениях и прочие сценарии не попали в этот обзор из-за узкой направленности и специфики.
Наверняка у вас тоже есть свой набор "ноу хау" для администрирования 1С — будет здорово если поделитесь с коллегами в комментариях.
Скрипты и ноу-хау предоставлены avelor, за что ему огромное спасибо!
Очистка кэша 1С Предприятие 8.3 — одна из сервисных функций, восстанавливающих работоспособность программы. Операция достаточно востребованная, поэтому в публикации дается исчерпывающий ответ на вопрос «Как очистить кэш 1С Предприятие 8.3?».
Очистка кэша 1С — очень эффективное решение многих некорректностей платформы, таких как: «поехали» формы элементов 1С, отчет формируется с ошибкой, появляется окно «ошибка формата потока» и многих других. Поэтому этот технический прием всегда должен быть «под рукой» как у администратора 1С, так и у обычного пользователя 1С программ. Для реализации этого, предлагаю обсудить сегодня следующие вопросы:
Позвонив в техподдержку компании или к партнерам 1С по вопросу некорректной работы 1С Предприятие 8.3 одним из предложенных решений (вместе с тестированием и исправлением информационной базы 1С Предприятие 8.3) будет очистка кэша 1С. Если вы не знаете, что такое «кэш 1С» и зачем он нужен, то вкратце расскажу.
Кэш 1С Предприятие 8.3 — это область на компьютере, где платформа 1С Предприятие 8.3 сохраняет файлы с служебной информацией.
Какая служебная информация сохраняется в кэше 1С
Во время работы 1С Предприятие существует необходимость сохранять массивы служебной информацией, такой как расположение окон, настройки шрифтов, цветов, отборов и многое другое заданное пользователем во время работы с конфигурациями 1С, а так же элементы необходимые для ускорения работы 1С Предприятие, служебные данные по работе пользователя и т.д.
Соответственно, если информация в кэше 1С имеет некорректный формат, то конфигурации 1С Предприятие 8.3 будут работать некорректно. Некорректные данные могут появиться, например, при отключении электричества во время записи данных в кэш 1С (при этом часть данных не запишется), из-за образовавшихся сбойных участков жесткого диска в связи с его физическим устареванием и по множеству других причин.
Как перейти к папкам кэша 1С Предприятие 8.3
Кэш 1С Предприятие 8.3 хранится в профиле пользователя в следующих папках:
- %userprofile%\AppData\Roaming\1C\1Cv82
- %userprofile%\AppData\Roaming\1C\1Cv8
- %userprofile%\AppData\Local\1C\1cv82
- %userprofile%\AppData\Local\1C\1cv8
Константа %userprofile% — содержит путь до профиля пользователя в ОС Windows, поэтому можно вбить в проводнике адрес до кэша 1С, как он указан выше, ОС Windows вас поймет и перейдет в нужную папку.
Некоторых папок может не существовать, поскольку они относятся к разным версиям платформ. Самый верный способ поиска папок с кэшами — это перейти в папку «…\1С\«, кэши будут храниться в папках, начинающихся с «\1cv8«.
Что бы перейти в профиль самостоятельно, в Проводнике Windows следуем по пути:
С:\Пользователи\ИмяПользователя
отсюда необходимо перейти в папку «AppData».
ВНИМАНИЕ! Папка «AppData» скрыта, что бы перейти в неё из профиля пользователя, необходимо добавить к адресной строке «\AppData\» вручную и нажать Enter.
Из папки «AppData» переходим в папки с кэшем 1С Предприятие, в соответствии с описанием выше.
Как очистить кэш 1С Предприятие 8.3 самостоятельно
Кэш очищается прямым удалением служебных файлов из папок хранения кэша 1C Предприятие 8.3.
Т.е. необходимо в папках «\1Cv8» и «\1Cv82» удалить все файлы.
Эта операция не нанесет никакого вреда работе конфигурациям 1С Предприятие 8.3, все необходимые служебные файлы кэша 1С платформа пересоздаст при очередном запуске конфигураций 1С.
Что бы облегчить процедуру удаления кэшей 1С, можно создать пакетный файл .bat.
Как очистить кэш 1С Предприятие 8.3 через пакетный файл .bat
Файл *.bat выполняет последовательно команды ОС Windows записанные в нем. Что бы облегчить процедуру удаления воспользуемся командой rd (удалить директорию)
/Q — Отключает запрос на подтверждение.
/S — Удаление каталога со всеми вложенными подкаталогами.
Сохраним эти строки в файл *.bat. Для этого в блокноте при сохранении файла, после имени файла дописываем «.bat» и в Типе файла выбираем «Все файлы». Если запустить созданный файл на выполнение (двойным щелчком), то с компьютера будут удаляться все кэши 1С Предприятие 8.3.
Для ленивых выкладываю для скачивания файл 1C-ClearCache.bat, который очищает кэши 1С Предприятие указанным выше способом:
Думаю, что теперь вопроса — как очистить кэш 1С Предприятие 8.3 у вас не возникнет. Если же остались неясности, то вы можете задать вопрос в комментариях к публикации или на нашем форуме.
Как очистить кэш 1С Предприятие 8.3 + обработка : 9 комментариев
Спасибо за обработку. Помогла, когда после обновления форма реализации начала отображаться некорректно.
В моей практике кеш часто очищают пользователям, чтобы в 1С-ке корректно отображались окна и правильно выполнялись привязки элементов формы. Это касается только обычного приложения, на управляемых формах всё ок.
Один из самых простых способов — удалить базу из списка стартера 1С, а потом прописать её обратно
в статье написан бред….. папки «Roaming» — не содержит кэша эти папки удалять не следует
чтобы почистить кэш на любой WinXP, Win7, Win8, Win10 файл должен выглядеть так
RD /S /Q «%UserProfile%\Local Settings\Application Data\1C\1cv8»
RD /S /Q «%UserProfile%\Local Settings\Application Data\1C\1cv81»
RD /S /Q «%UserProfile%\Local Settings\Application Data\1C\1cv82»
RD /S /Q «%UserProfile%\Local Settings\Application Data\1C\1cv83»
Еще как содержит
Статья написана хорошо. Чистить кэш необходимо в двух папках:Local и Roaming. А файлы *.pfl, находящиеся в них лучше не удалять.
спасибо за статью, очень выручила
Спасибо большое. Все заработало после очистки кэша.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Читайте также: