Четверг, 23.11.2017
Уголок эникейщика
Меню сайта
Категории раздела
Около ПК [67]
Полезные программы [32]
Интересности [26]
[8]
Android [8]
Личное [27]
Настройки сайта [8]
Избранное

Рахни православні

Погода в Виннице
Сайт Экслера

Форум Ru.Board
CWER.ru

Hot Line - Цены
Яндекс.Маркет

Форум rutracker.org

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » 2013 » Январь » 8 » Изменение константы с помощью SQL-запроса
14:15
Изменение константы с помощью SQL-запроса

Довольно специфическая ситуация: нужно исправить документы с пустыми датами в базе (1C v7). 

Проблемный документ нашел, но сохранить нет возможности - дата документа меньше даты в константе ДатаЗапретаРедактирования - самостоятельно поменять значение константы не получится (база периферийная, а средствами конфигурации запрещено изменение значения этой константы не в центре).

По процедуре это нужно делать так:
   Объяснить центральной бухгалтерии, для чего нужно стереть значение константы ДатаЗапретаРедактирования - заставить их это сделать - организовать выгрузку данных из центра на несколько периферийных отделений - проконтролировать их прием на местах и загрузку - провести нужные изменения через удалённый доступ на местах - выгрузить базы в центр - проконтролировать их прием и изменение константы в центре - и опять выгрузиться на филиалы. Нет ничего проще ))) Человеческий фактор на каждом этапе.

Но значение константы можно поправить через SQL-запрос.

Такие изменения нужно проводить максимально осторожно, до конца контролируя свои действия, не трогая ничего лишнего, помня о том, что нормальное (средствами 1С) изменение документов, справочников может потянуть за собой массу изменений в регистрах, проводках, справочниках и т.д. И вносить рассогласование в базу - создавать пользователям и себе массу лишних проблем.

После осознания необходимости действовать аккуратно можно приступать к работе.

Нужно запустить Enterprise Manager, пройти по пути Console Root - Microsoft SQL Servers - SQL Server Group - (local) Windows NT - Databases.
Константы и периодические реквизиты справочников хранятся в таблице _1SCONST нужной базы (ссылка). Нужно понимать, что для изменения значения константы необходимо узнать её id. Мало того, константы с одинаковыми именами в различных конфигурациях имеют разные id.

Вопрос поиска id будет рассмотрен позже. Допустим, id найден и равен 141.

Поэтому запрос 

SELECT * FROM _1sconst WHERE id = 141

покажет значение нужной мне константы (в данном случае это ДатаЗапретаРедактирования - хорошо, что константа не периодическая).

Запрос 

UPDATE _1sconst SET value = '' WHERE id = 141

сбросит значение этой константы (опять-таки хорошо, что константа не периодическая). 

А запрос 

UPDATE _1sconst SET value = '08.01.2013' WHERE id = 141

установит значение константы ДатаЗапретаРедактирования на 8 января этого года.

Для выполнения запроса нужно в Enterprise Manager запустить Tools - SQL Query Analyzer, выбрать нужную базу, внести запрос в поле ввода и нажать F5.

Теперь о том, как найти id константы.

Эта информация находится внутри md-файла. Для её нахождения можно использовать плагин t1clister (универсальный плагин для просмотра файлов 1С). Он идёт в составе Total Commander 1C Edition. Можно достать оттуда и прицепить к своему Total Commanderу.

С подключенным плагином необходимо стать на md-файл базы и нажать F3. Перейти в раздел "Состав конфигурации" и найти строку, похожую на эту:

{"141","ДатаЗапретаРедактирования","Дата, запрета редактирование данных","","D","0","0","0","0","0","0"}, 

id идёт в самом начале строки.

Категория: | Просмотров: 1034 | Добавил: IgorDanyK | Рейтинг: 0.0/0
Облако тегов
сайт программы Статьи личное разочарования Windows 1c антивирус политика почитать рекомендую Prices math ссылки english скрипты total сеть VBS
Календарь
«  Январь 2013  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей
Поиск
Google

WWW на сайте
Copyright IgorDanyK © 2017
Создать бесплатный сайт с uCoz