Архивы рубрики ‘1Cv77’

Описание таблиц 1С V77

Автор статьи — Печеный Василий.
1. Описание общих таблиц 1С V77
1.1. Общее описание хранения данных 1С.
1.1.1. Хранение ID объекта
1.1.2. Хранение даты
1.1.3. Хранение времени
1.2. Описание таблиц 1С
1.2.1. Таблица _1SCONNECT — Сессии (соединения)
1.2.2. Таблица _1SCONST — Константы
1.2.3. Таблица _1SCRDOC — Ссылки документов
1.2.4. Таблица _1SJOURN — Журналы
1.2.5. Таблица _1SDNLOCK — Номера документов
1.2.6. Таблица _1SSTREAM — Последовательность документов
1.2.7. Таблица _1SSYSTEM — Системная
1.2.8. Таблица _1SUIDCTL — Уникальности
1.2.9. Таблица _1SUSERS — Соединения
2. Подсистема справочников и констант
2.1. Предисловие
2.2. Введение
2.3. Описание полей таблиц справочников
2.4. Описание полей таблицы констант и периодических реквизитов справочников
2.5. Примеры запросов
2.5.1. Пример 1. Получение всех записей справочника.
2.5.2. Пример 2. Получение записей только групп справочника.
2.5.3. Пример 3. Получение записей только элементов (не групп) справочника.
2.5.4. Пример 4. Получение записей только непомеченных элементов справочника.
2.5.5. Пример 5. Получение записей элементов с периодическим реквизитом на максимальную дату.
2.5.6. Пример 6. Получение записей элементов с периодическим реквизитом на конкретную дату.
2.5.7. Пример 7. Получение значений непериодических реквизитов агрегатных типов.
2.5.8. Пример 8. Получение записей элементов справочников с их родителями.
2.5.9. Пример 9. Выборка элементов из подчиненного справочника.
3. Подсистема документов и регистров
3.1. Предисловие
3.2. Введение
3.3. Общее описание хранения данных 1С в подсистеме документов
3.3.1. Краткое описание таблиц
3.3.2. Примеры запросов
3.3.2.1. Пример 1. Получение всех документов одного вида со всеми реквизитами шапки.
3.3.2.2. Пример 2. То же, включая все общие и системные реквизиты.
3.3.2.3. Пример 3. То же, плюс все реквизиты табличной части.
3.3.2.4. Пример 4. То же, с фильтром по дате документа (за один день).
3.3.2.5. Пример 5. Получение документов родителей по подчиненному документу.
3.3.2.6. Пример 6. Получение списка подчиненных документов.
3.3.2.7. Пример 7. Получение списка только проведенных документов.
3.3.2.8. Пример 8. Получение списка документов, принадлежащих разным типам учета.
3.3.2.9. Пример 9. Получение списка документов по графе отбора.
3.4. Регистры
3.4.1. Общее описание подсиcтемы регистров
3.4.2. Рассмотрим примеры
3.4.2.1. Структура и описание полей таблиц регистров
3.4.2.1.1. Таблица RGxxx
3.4.2.1.2. Таблица RAxxx
3.4.2.2. Пример 1. Получение итогов на ТА или на конец периода.
3.4.2.3. Пример 2. Получение сумм прихода и расхода за один месяц (оборотов).
3.4.2.4. Пример 3. Получение итогов и остатков на произвольную дату.
3.4.2.5. Пример 4. Получение итогов и остатков на документ.
3.4.2.6. Пример 5. Получение остатков и оборотов за произвольный период.
3.4.2.7. Пример 6. Пересчет итогов по одному из регистров остатков.
Читать далее »

Настройка SQL Server для использования физической памяти размером более 2 ГБ.

В этой статье описан процесс настройки SQL Server на использование физической памяти размером более 2 ГБ.

Microsoft SQL Server 7.0 и Microsoft SQL Server 2000 поддерживают динамическое получение и освобождение памяти по необходимости. При запуске на компьютере нескольких экземпляров SQL Server каждый экземпляр динамически получает и освобождает память, необходимую для оптимального распределения нагрузки.

SQL Server 2000 Enterprise Edition предлагает поддержку технологии Microsoft Windows 2000 Address Windowing Extensions (AWE), позволяющей выделение приблизительно 8 ГБ памяти для экземпляров, запускаемых под Microsoft Windows 2000 Advanced Server, и приблизительно 32 ГБ для экземпляров, запускаемых под Microsoft Windows 2000 Datacenter. Технология AWE позволяет SQL Server резервировать неиспользуемую память для других приложений и операционной системы. Однако каждый экземпляр, использующий такую память, должен статически распределять необходимую ему память. SQL Server может использовать выделенную память AWE только для кэша данных, но не для исполняемых файлов, драйверов, динамических библиотек и т.п. Читать далее »

Включение расширений AWE в MS SQL Server

Прежде чем включить расширения AWE, учетной записи SQL Server необходимо предоставить разрешение LOCK PAGE IN MEMORY (Блокировка страниц в памяти).

Параметр Блокировка страниц в памяти политики Windows по умолчанию отключен. Его необходимо включить для настройки расширений AWE. Эта политика определяет, какие учетные записи вправе использовать процесс для хранения данных в физической памяти, что предотвращает страничную запись данных операционной системой в область виртуальной памяти на диск. В 32-разрядных операционных системах включение данной политики без использования расширений AWE может существенно снизить общую производительность системы. Блокировка страниц в памяти не требуется в 64-разрядных операционных системах. Для включения этой политики для учетной записи, используемой SQL Server, воспользуйтесь средством «Групповая политика Windows» (gpedit.msc). Чтобы изменить эту политику, необходимо быть системным администратором. 1. В меню Пуск выберите команду Выполнить. В поле Открыть введите gpedit.msc. Откроется диалоговое окно Групповая политика.
2. В консоли Групповая политика разверните узел Конфигурация компьютера, затем узел Конфигурация Windows. Разверните узлы Настройки безопасности и Локальные политики.
3. Выберите папку Назначение прав пользователя. Политики будут показаны в области подробностей.
4. В этой области дважды щелкните параметр Закрепление страниц в памяти. (В WS2008 Блокировка страниц в памяти)
5. В диалоговом окне Параметр локальной безопасности нажмите кнопку Добавить.
6. В диалоговом окне Выбор: Пользователи или Группы добавьте учетную запись, обладающую правами доступа для запуска sqlservr.exe. Включаем расширения AWE.sp_configure 'show advanced options', 1

RECONFIGURE

GO

sp_configure 'awe enabled', 1

RECONFIGURE

GO

После перезапуска SQL Server в журнале ошибок SQL Server должно появиться следующее сообщение: Address Windowing Extensions enabled.

Далее настройте память.

sp_configure 'min server memory', 1024

RECONFIGURE

GO

sp_configure 'max server memory', 4144

RECONFIGURE

GO

В этом примере настройки памяти для SQL Server и Windows Server 2003 устанавливают буферный пул для динамического управления расширенной памятью AWE между 1 ГБ и 4 ГБ.

Как переиндексировать, проверить, восстановить базу на MS SQL Server

Чтобы произвести переиндексацию необходимо выполнить такой запрос (например в QA):

USE base_1c
EXEC _1sp_DBReindex

где base_1c — имя базы данных.
Если хранимой процедуры _1sp_DBReindex нет в базе данных (база не 1С), то можно выполнить такой код (это и есть код хранимой процедуры _1sp_DBReindex):

USE base_1c
DECLARE @TableName char(32)
DECLARE SysCur CURSOR FOR SELECT name FROM sysobjects WHERE type=’U’
OPEN SysCur
FETCH NEXT FROM SysCur INTO @TableName
WHILE @@FETCH_STATUS=0 BEGIN
DBCC DBREINDEX(@TableName)
FETCH NEXT FROM SysCur INTO @TableName
END
CLOSE SysCur
DEALLOCATE SysCur

где base_1c — имя базы данных. Читать далее »

7.7 файлы .$lk

Итак, файловые блокировки. Например, при открытии элемента формы справочника происходит блокировка определенного байта файла, соответствующего типу объекта в 1С. Более подробное описание таких блокировок можно прочитать в статье. При блокировке справочника создается файл с наименованием, к примеру sc35.$lk, а при открытии документа — 1sjourn.$lk . Номер блокируемого байта соответсвует записи первичного ключа. Очевидно, эта система осталась еще с DBF-версии, в которой, кстати, полей типа Row_id вообще не было, их определяли по номеру строки DBF.

FAQ Восстановление базы 1С под SQL-Server

Иногда приходится столкнуться с ситуацией, когда плоды многолетней работы, находящиеся в SQL-базе данных оказываются под угрозой. Эта статья о том, как не допустить потерю данных, а в случае, если это всё-таки произошло, как восстановить данные из того, что осталось от некогда нормальной базы.
Итак, приступим. Ситуация следующая: имеется сервер с запущенной на нем 1С+SQL. Во время работы SQL базы рубанули питание. Результат плачевный: база находится в состоянии suspect, и когда 1с пытается к ней зацепиться, выдается ошибка, что мол соединиться невозможно т.к. база помечена suspect for recovery. Этот режим в принципе означает, что MSSQL Server попытается восстановить базу своими средствами. Я не стал ни чего трогать и оставил все на ночь, в надежде, что к утру база восстановится, но и утром было то же самое, и к базе, стало быть, ни как не подобраться. Backup по закону подлости имеется, но он трехдневной давности, плюс имеется куча документов которые проводятся лишь по базе, а по бумажным документам их нет, т.е. возможности вручную восстановить документы нет. Потратив кучу сил, и нервов, (которые, как известно не восстанавливаются :)), я пришел к следующей последовательности действий, необходимых для восстановления базы.  Читать далее »

Восстановление базы MS SQL из Suspect Mode

Пришла беда откуда не ждали…

После аварийной перезагрузки сервера база MS SQL ушла в Suspect Mode.

Все бы ничего, есть часовой архив, и в течении 30 минут он был восстановлен, но работа за час была утерянной.

А поскольку пятница и рабочий день подошел к завершению то было принято решение о попытке восстановления базы из Suspect Mode.

Итак имеем базу в Suspect Mode и ее архив за час до этого. Читать далее »

Как в 1Cv77 картинку поместить на фон в табличном документе

Иногда возникает необходимость в разработке табличных документов 1С с фоновой заливкой рисунка. Достаточно тривиальная задача для 1С перестает быть таковой. В 1С нет возможности вставки рисунков с прозрачным фоном (gif …) и картинка полностью перекрывает собой текст таблицы. Но все же решение есть.

Читать далее »

1C Ошибка SQL Intra-query parallelism caused your server command (process ID #…) to deadlock

При работе 1С v77, v8 MS SQL иногда возникает ошибка СУБД:

Microsoft OLE DB Provider for SQL Server: Intra-query parallelism caused your server command (process ID #…) to deadlock. Rerun the query without intra-query parallelism by using the queri hiht option (maxdop 1).

HRESULT=80040E14, SQLSrvr: Error state=7F, Severity=D, native=8650, line=1

Читать далее »

«Внутренние» блокировки в 1С 7.7

Для чего вообще 1С реализовала внутренний механизм блокировок ? Ну во первых для того ,что бы не решать вопрос разрешения конфликтов отображения и записи данных из разных экранных форм одного и того же объекта. То есть предполагается, что если пользователь открыл расходную накладную №5 то никто другой не сможет открыть экранную форму этой накладной пока он ее не закроет. На попытку открыть документ выведется на экран сообщение «Запись заблокирована». Аналогичные по смыслу сообщения будут выводиться в обработках при попытках изменить объект данных который заблокирован. Это, кстати, многие не учитывают в своих обработках.

Читать далее »