Как в УТ 11 убрать префиксы с печатной формы? Нужно открыть ОбщийМодуль
ПрефиксацияОбъектовКлиентСервер
и найти процедуру
ПолучитьНомерНаПечать
В коде:
Код 1C v 8.2 УП // после
Функция ПолучитьНомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт
// добавляем
//Префикс при печати нам не нужен
УдалитьПрефиксИнформационнойБазы = Истина;
Категория:
1С Управление торговлей 10.3 Прямые запросы к SQL серверу. Как то возникла ситуация, когда в справочник, с включенной проверкой на уникальность кода, из вне приходят элементы с такими же кодами. Отключать проверку нельзя. Пришлось делать затычку.
Подключение к SQL в общем то широко описано:
Код 1C v 8.х Функция Подключение(Сервер,БД)
cnn = Новый COMОбъект("ADODB.Connection");
cnn .ConnectionTimeOut = 0;
cnn .CommandTimeOut = 0;
cnn .connectionString = "SERVER="+Сервер+"; Database="+БД+"; DRIVER=SQL Server; UID=sa; PWD=*****;";
cnn .Open();
if cnn .State()=0 then
Сообщить("Не удалось соединиться с сервером");
cnn = 0;
Возврат Ложь;
endif;
cnn .Execute("SET NOCOUNT ON");
Возврат cnn ;
КонецФункции
Сервер и БД можно получить и программно, но муторно. Эти данные можно взять из свойств БД на сервере 1С.
Название таблицы и полей в SQL можно получить с помощью команды 1С:
Цитата Глобальный контекст
ПолучитьСтруктуруХраненияБазыДанных (GetDBStorageStructureInfo)
Синтаксис:
ПолучитьСтруктуруХраненияБазыДанных(<Объекты метаданных>, <Имена базы данных>)
Параметры:
<Объекты метаданных> (необязательный)
Тип: Массив. Массив имен объектов метаданных или массив объектов метаданных, для которых требуется получить структуру таблиц базы данных.
<Имена базы данных> (необязательный)
Тип: Булево. Определяет, в каких терминах выдается информация о структуре хранения.
Истина - в терминах СУБД
Ложь - в терминах SDBL.
Значение по умолчанию: Ложь
Возвращаемое значение:
Тип: ТаблицаЗначений. Возвращает таблицу значений с описаниями структуры таблиц, индексов и полей базы данных в терминах SDBL или используемой СУБД, в зависимости от значения параметра "Имена базы данных".
Если параметр не используется, то возвращаемая таблица значений содержит информацию о структуре таблиц базы данных всех объектов метаданных.
Таблица значений включает следующие колонки:
ИмяТаблицыХранения(StorageTableName) – имя таблицы SDBL или базы данных;
ИмяТаблицы(TableName) – имя таблицы в терминах языка запросов (для тех у кого оно есть);
Метаданные(Metadata) – полное имя объекта метаданных;
...
Дальше нам нужно новый элемент справочника все ж таки записать, ну например :
Код 1C v 8.х
Попытка
спр.Записать();
Исключение
Сообщить("Не уникальный код "+стр.Код+" у элемента "+стр.Наименование);
Спр.УстановитьНовыйКод();
Спр.Записать();
КонецПопытки;
Все, делаем подмену.
Код 1C v 8.х подключение=Подключение(Сервер,База);
ТекстЗапроса="UPDATE Номенклатура
|SET Номенклатура._Code="+Формат(КодНужный,"ЧГ=0")+"
|FROM _Reference57 AS Номенклатура
|WHERE (CAST(Номенклатура._Folder AS int)=1)
|AND (Номенклатура._Code="+Формат(Спр.Код,"ЧГ=0")+")
|";
подключение.Execute(ТекстЗапроса);
Сообщить("Код "+КодБыл+" подменен на "+КодНужный);
Категория:
Запросы