пятница, 19 апреля 2013 г.

Описание таблиц SQL для 1С V8.x

Данное описание таблиц применимо к с следующим СУБД:
  • Microsoft SQL Server (клиент-серверный вариант информационной базы).
  • PostgreSQL (клиент-серверный вариант информационной базы).
  • IBM DB2  (клиент-серверный вариант информационной базы)
Основные таблицы:

Название таблицыОписание
Config Основная конфигурация информационной базы. Эта конфигурация соответствует реальной структуре данных и используется 1С:Предприятием 8.х в режиме Предприятия
ConfigSaveКонфигурация, редактируемая Конфигуратором.
Не сама основная конфигурация, а только отличия ее от конфигурации БД (т.е. только измененные объекты). Таким образом, если конфигурации базы данных и основная конфигурация совпадают, то таблица ConfigSave пустая. Конфигурация из ConfigSave переписывается в Config при выполнении "Обновления конфигурации базы данных" в Конфигураторе
FilesСодержит служебную информацию, например, о работе с хранилищем конфигурации
Params
Содержит параметры информационной базы. Среди них:
  • Список пользователей информационной базы. 
  • Национальные настройки информационной базы. 
  • Таблица соответствия объектов метаданных и объектов базы данных (таблиц, полей, индексов). 
_YearOffsetСмещение дат в базе данных. Эта таблица создается только при использовании Microsoft SQL Server
DBSchemaСодержит информацию о структуре базы данных 1С:Предприятия и определяет другие объекты базы данных, используемые данной информационной базой


Таблицы планов обмена, с установленным флагом "Распределенная информационная база":

Название таблицыОписание
_ConfigChangeRec Таблица регистрации изменений объектов конфигурации
_ConfigChangeRec_ExtPropsТаблица имен файлов измененных внешних свойств объектов конфигурации


Таблицы метаданных:

Название таблицыОписание
_Consts Константы.Содержит текущие значения всех констант, определенных в конфигурации
_ConstsChangeRecКонстанты. Таблица регистрации изменений констант. Создается, если хотя бы одна константа участвует хотя бы в одном плане обмена.
_Node<n> Планы обмена. Таблица плана обмена
_Node<n>_VT<k> Планы обмена. Табличная часть плана обмена, создается для каждой табличной части
_Reference<n> Справочники. Таблица справочника
_Reference<n>_VT<k> Справочники. Табличная часть справочника - для каждой табличной части
_ReferenceChangeRec<n> Справочники. Таблица регистрации изменений справочника. Создается, если справочник участвует хотя бы в одном плане обмена.
_Document<n> Документы. Таблица документов для каждого объекта метаданных "документ".
_Document<n>_VT<k> Документы. Табличная часть документа - для каждой табличной части каждого документа.
_DocumentChangeRec<n> Документы. Таблица регистрации изменений объекта метаданных типа "документ". Создается для каждого объекта метаданных типа "документ", если он участвует хотя бы в одном плане обмена.
_Sequence<n> Последовательности документов. Таблица регистрации документов - для каждой последовательности.
_SequenceBoundary<n> Последовательности документов. Таблица границ последовательности - для каждой последовательности.
_SequenceChangeRec<n> Последовательности документов. Таблица регистрации изменений последовательности. Создается для каждой последовательности, которая участвует хотя бы в одном плане обмена.
_DocumentJournal<n> Журналы документов. Таблица журнала документов, создается для каждого журнала документов.
_Enum<n> Перечисления. Таблица перечисления - по одной для каждого перечисления. 
_Chrc<n> Планы видов характеристик. Основная таблица плана видов характеристик.
_Chrc<n>_VT<k> Планы видов характеристик. Табличная часть плана видов характеристик - для каждой табличной части.
_ChrcChangeRec<n> Планы видов характеристик. Таблица регистрации изменений плана видов характеристик. Создается, если план видов характеристик участвует хотя бы в одном плане обмена.
_Acc<n> Планы счетов. Основная таблица плана счетов.
_Acc<n>_ExtDim<k> Планы счетов. Таблица видов субконто плана счетов, создается для плана счетов в том случае, если максимальное количество субконто больше нуля.
_Acc<n>_VT<k> Планы счетов. Табличная часть плана счетов, создается для каждой табличной части плана счетов. 
_AccChangeRec<n> Планы счетов. Таблица регистрации изменений плана счетов. Создается, если план счетов участвует хотя бы в одном плане обмена. 
_CalcKind<n> Планы видов расчета. Основная таблица плана видов расчета.
_CalcKind<n>_BaseCK Планы видов расчета. Таблица базовых видов расчета, создается для плана видов расчета в случае, если его свойство "Зависимость от базы" имеет значение, отличное от "Не зависит".
_CalcKind<n>_DisplacedCK Планы видов расчета. Таблица вытесняемых видов расчета, создается для плана видов расчета в случае, если у него установлен флаг "Использует период действия". 
_CalcKind<n>_LeadingCK Планы видов расчета. Таблица ведущих видов расчета - для каждого плана видов расчета.
_CalcKindDN<n> Планы видов расчета. Вспомогательная таблица для порядка вытеснения, создается, если у плана видов расчета установлен флаг "Использует период действия". 
_CalcKind<n>_VT<k> Планы видов расчета. Табличная часть плана видов расчета, создается для каждой табличной части.
_CalcKindChangeRec<n> Планы видов расчета. Таблица регистрации изменений плана видов расчета. Создается, если план видов расчета участвует хотя бы в одном плане обмена. 
_InfoReg<n> Регистры сведений. Таблица движений регистра сведений.
_InfoRegChangeRec<n> Регистры сведений. Таблица регистрации изменений регистра сведений. Создается, если регистр сведений участвует хотя бы в одном плане обмена.
_AccumReg<n> Регистры накопления. Таблица движений регистра накопления.
_AccumRegTotals<n> Регистры накопления. Таблица итогов регистра накопления, если регистр поддерживает остатки.
_AccumRegTurnovers<n> Регистры накопления. Таблица оборотов регистра накопления, если регистр поддерживает обороты. 
_AccumRegChangeRec<n> Регистры накопления. Таблица регистрации изменений регистра накопления. Создается, если регистр накопления участвует хотя бы в одном плане обмена.
_AccumRegOptions Регистры накопления. Таблица настроек хранения итогов регистров накопления одна на все регистры накопления. 
_AccntReg<n> Регистры бухгалтерии. Таблица движений регистра бухгалтерии
_AccntRegED<n> Регистры бухгалтерии. Таблица значений субконто регистра бухгалтерии, создается в том случае, если он ссылается на план счетов, у которого максимальное количество субконто больше нуля.
_AccTtl0<n> Регистры бухгалтерии. Таблица итогов по счету.
_AccTtl<i><n> Регистры бухгалтерии. Таблица итогов по счету с количеством видов субконто равным i, где i от 1 до максимального количества субконто. 
_AccTtlC<n> Регистры бухгалтерии. Таблица итогов оборотов между счетами, только для регистра бухгалтерии поддерживающего корреспонденцию. 
_AccntRegChangeRec<n> Регистры бухгалтерии. Таблица регистрации изменений регистра бухгалтерии. Создается, если регистр бухгалтерии участвует хотя бы в одном плане обмена. 
_AccntRegOptions Регистры бухгалтерии. Таблица настроек хранения итогов одна на все регистры бухгалтерии.
_CalcReg<n> Регистры расчета. Таблица движений регистра расчета.
_CalcRegActPer<n> Регистры расчета. Таблица фактических периодов действия для регистра расчета, создается, если у регистра расчета установлен флаг "Период действия".
_CalcRegChangeRec<n> Регистры расчета. Таблица регистрации изменений регистра расчета. Создается для каждого регистра расчета, участвующего хотя бы в одном плане обмена.
_CalcRegRecalc<n> Регистры расчета. Таблица перерасчета регистра расчета, создается для каждого перерасчета.
_CalcRegRecalcChangeRec<n> Регистры расчета. Таблица регистрации изменений перерасчета. Создается, если перерасчет участвует хотя бы в одном плане обмена.
_BPRoutePoint<n> Бизнес-процессы. Таблица точек маршрута бизнес-процесса для каждого бизнес-процесса.
_BusinessProcess<n> Бизнес-процессы. Основная таблица бизнес-процесса. 
_BusinessProcess<n>_VT<k> Бизнес-процессы. Табличная часть бизнес-процесса для каждой табличной части.
_BusinessProcessChangeRec<n> Бизнес-процессы. Таблица регистрации изменений бизнес-процесса. Создается для каждого бизнес-процесса, участвующего хотя бы в одном плане обмена.
_Task<n> Задачи. Основная таблица задачи.
_Task<n>_VT<k> Задачи. Табличная часть задачи для каждой табличной части.
_TaskChangeRec<n> Задачи. Таблица регистрации изменений в задачах. Создается для каждого объекта метаданных типа "задача", который участвует хотя бы в одном плане обмена. 


Структуру и название таблиц используемых для хранения данных в БД 1С 8.х можно посмотреть, выполнив следующий код на встроенном языке 1С:

 МассивИменМетаданных = Новый Массив();
 МассивИменМетаданных.Добавить("Справочник.Номенклатура");

 // Таблица значений, содержащая таблицы указанного объекта.
 Таблицы = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);
 Построитель = Новый ПостроительОтчета;
 Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Таблицы);
 Построитель.ЗаполнитьНастройки();
 Построитель.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1);
 Обновить();
 
 //Для Каждого Таблица Из Таблицы Цикл
 // ПоляТаблицы = Таблица.Поля;
 // Для Каждого Поле Из ПоляТаблицы Цикл
 //  // Просмотр свойств таблицы.
 // КонецЦикла; 

 // ИндексыТаблицы = Таблица.Индексы;
 // Для Каждого Индекс Из ИндексыТаблицы Цикл
 //  // Просмотр свойств индекса.
 // КонецЦикла;   
 //КонецЦикла;    

вторник, 9 апреля 2013 г.

Сканируем документы по сети. Или как расшарить сканер в Ubuntu?

Задача:
Организовать возможность сканировать документы по локальной сети.

Имеем:
Копутеры в разных подсетях (192.168.1.0/24, 192.168.2.0/24, 192.168.10.0/24) и МФУ Canon MF4010, подключенный по USB к 192.168.1.6

Обозначения:
scanserver - компьютер, к которому подключен сканер;
scanclient - компьютер, к которого необходимо сканировать по сети;


На scanserver:

Ставим недостающие пакеты:
$sudo apt-get install sane-utils

Правим конфиги:

$sudo mcedit /etc/sane.d/saned.conf

в самый конец файла добавляем IP-адрес scanclient 
(Если клиентов несколько, то можно указать диапозон IP-адресов (например, 192.168.1.1-192.168.1.4)
 или всю подсеть (например, 192.168.1.0/24))

192.168.1.0/24
192.168.2.0/24
192.168.10.0/24

$sudo mcedit /etc/inetd.conf

добавляем в него строку:
sane-port stream tcp nowait saned:saned /usr/sbin/saned saned

(если такая строка есть, но закомментирована - соответственно раскомментировать ее)


Рестартуем openbsd-inetd:
$sudo service openbsd-inetd restart


Если в системе еще нет группы scanner - создаем ее, и добавляем себя и пользователя saned в эту группу:
$sudo groupadd scanner
$sudo usermod -aG scanner user
$sudo usermod -aG scanner saned

Правим конфиг 40-libsane.rules:
$sudo mcedit /lib/udev/rules.d/40-libsane.rules

ищем свой сканер, должно быть что то типа:

# Canon imageCLASS MF4010 | Canon imageCLASS MF4018
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="26b4", ENV{libsane_matched}="yes"

приводим строку к такому виду:

# Canon imageCLASS MF4010 | Canon imageCLASS MF4018
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="26b4", ENV{libsane_matched}="yes", MODE="664", GROUP="scanner"


Если вашего сканера нет в файле, его можно добавить вручную по idVendor и idProduct, которые можно получить командой на scanserver:
$sane-find-scanner

в ответ должно быть что тот типа:
found USB scanner (vendor=0x04a9 [Canon Inc.], product=0x26b4 [MF4010]) at libusb:001:003

Теперь правим /etc/default/saned:
$sudo mcedit /etc/default/saned

устанавливаем RUN=yes

Рестартуем saned:
$sudo service saned restart

На этом настройка scanserver-a завершена...


На scanclient:

Ставим недостающие пакеты:
$sudo apt-get install sane-utils

Правим конфиг:

$sudo mcedit /etc/sane.d/net.conf

в самый конец файла добавляем IP-адрес scanserver
192.168.1.6 

Проверяем доступность сканера:
$sudo scanimage -Lq

В ответ должны получить что-то вроде:
device `net:192.168.1.6:pixma:04A926B4_SD3008250258Q' is a CANON Canon imageCLASS MF4010 multi-function peripheral

В конфиге /etc/sane.d/dll.conf проверяем наличие строки (раскаментируем/добовляем):
net


Если в системе еще нет группы scanner - создаем ее, и добавляем себя и пользователя saned в эту группу:
$sudo groupadd scanner
$sudo usermod -aG scanner user
$sudo usermod -aG scanner saned

На этом ВСЕ!!! Можно пробовать сканировать с помощью XSane или другой подходящей программой, используя расшаренный сканер.


ЗАМЕЧАНИЕ!!!
Если после настройки есть ругань на ограничение правах использования сканера, то на scanserver в конфиге /etc/inetd.conf следует заменить строку параметров:

sane-port stream tcp nowait saned:saned /usr/sbin/saned saned
заменить на:
sane-port stream tcp nowait root /usr/sbin/saned saned

Sony Xperia P + Ubuntu 12.04. Или подключаем Android 4.0+ к Ubuntu 12.04

Давно не было необходимости подключать свой телефон к копутеру по USB. А тут вот столкнулся. К своему удивлению обнаружил, что по-умолчанию 12-я убунта на умеет работать со смартами на android 4.0+ как с обычной флешкой по USB. Пришлось лечить.

Устанавливаем Go-mtpfs:

$sudo add-apt-repository ppa:webupd8team/unstable
$sudo apt-get update && sudo apt-get install go-mtpfs
Для монтирования устройства выполняем:
$go-mtpfs /media/MyAndroid

Для отмонтирования устройства выполняем:
$fusermount -u /media/MyAndroid



Убираем лишние значки с панели Gnome 3.

Значки типа: "специальные возможности", "индикатор раскладки клавиатуры" (у меня Xneur установлен), "индикатор батареи" мне не нужны. Было принято убрать лишнее с панели:

$sudo mcedit /usr/share/gnome-shell/js/ui/panel.js

закоментим оригинальные строки:

/*const STANDARD_STATUS_AREA_ORDER = ['a11y', 'display', 'keyboard', 'volume', 'bluetooth', 'network', 'battery','userMenu'];
 const STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION = {
'a11y': imports.ui.status.accessibility.ATIndicator,
'volume': imports.ui.status.volume.Indicator,
'battery': imports.ui.status.power.Indicator,
'keyboard': imports.ui.status.keyboard.XKBIndicator,
'userMenu': imports.ui.userMenu.UserMenuButton
 };*/

и напишем как нам надо:

const STANDARD_STATUS_AREA_ORDER = [ 'volume', 'bluetooth', 'network'];
const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
 'volume': imports.ui.status.volume.Indicator,
'userMenu': imports.ui.userMenu.UserMenuButton
 };

Перезагружаем Gnome (Alt+F2 —> r). Готово!

Свои ярлыки в меню Gnome 3 Ubuntu 12.04

Для того, чтобы создать собственный ярлык в главном меню Gnome 3 Ubuntu 12.04, например, для 1С:Предприетие 7.7, необходимо в /usr/share/applications/ создать desktop-файл такого содержания:

#mcedit /usr/share/applications/1cv77.desktop

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=env WINEPREFIX="/home/alah/.wine" wine start /Unix "/home/alah/wine_c/Program Files/1Cv77/BIN/1cv7s.exe"
Categories=Wine;
Icon[ru_RU]=/home/alah/.local/share/icons/hicolor/32x32/apps/1FDC_1Cv7s.0.png
Name[ru_RU]=1С:Предприятие 7.7
Icon=/home/alah/.local/share/icons/hicolor/32x32/apps/1FDC_1Cv7s.0.png
Name=1C:Enterprise 7.7

где

Exec - команда запуска приложения;
Categories - подкатегория, куда положить ярлык;
Icon - путь к иконке для ярлыка;
Name - имя ярлыка;