Секретный релиз платформы v77.27.7

Публикация № 82018

Разработка - Инструментарий разработчика

Исправления платформы, позволяющие запустить 1cv77 в клиент-серверном варианте на СУБД MS SQL 2005-2014 без понижения режима совместимости.

Реализация в виде прокси-dll, в которой исправляются известные проблемы платформы:

  • невозможность работы, при запуске на mssql 2005-2014 (без патчинга bkend.dll);
  • невозможность работы без понижения режима совместимости до mssql 2000, при запуске на mssql 2005-2014;
  • невозможность работы в ОС Win Vista/7/8/8.1 в режиме клиент-сервера (без манипуляций с файлами odbc-драйвера); 

Ограничения:

  • нет совместимости с некоторыми 1c++ запросами (ищу решение); 

Поддерживаемые клиентские ОС:

  • Windows 2000;
  • Windows XP;
  • Windows 2003;
  • Windows Vista;
  • Windows 7;
  • Windows 8;
  • Windows 8.1; 

Поддерживаемые SQL-сервера:

  • MS SQL 2000;
  • MS SQL 2005;
  • MS SQL 2008;
  • MS SQL 2008 r2;
  • MS SQL 2012;
  • MS SQL 2014;

Состав поставки:

  • BkEnd.dll - proxy-dll;
  • BkEndUtls.dll - служебная библиотека; 

Порядок установки:

  1. Установить платформу из оригинального установщика;
  2. Установить и настроить HASP-ключ (обязательное условие, а то к вам придут врачи);
  3. Переименовать оригинальный файл BkEnd.dll в BkEnd0.dll (0 - это ноль);
  4. Скопировать файлы BkEnd.dll и BkEndUtls.dll из поставки в каталог, куда установлена 1с (например, C:\Program Files\1Cv77\BIN);

Для счастливых обладателей dbf-версии ничего не меняется.

Для обладателей sql-версии, у которых база данных размещается на MS SQL 2005-2014, необходимо соблюсти следующие требования для sql-логина (учетка, под которой 1с подключается к sql):

  • обладание, как минимум правами db_owner;
  • права на VIEW SERVER STATE; 

С первым требованием все и так ясно, второе - требует пояснений. Для определения количества соединений к текущей базе данных, 1с обращается к системной таблице sysprocesses. Если у логина отсутствуют права на VIEW SERVER STATE, то будут видны только соединения, осуществленные под своей учеткой, что не совсем хорошо - нужно видеть все соединения с текущей базой, чтобы получать адекватые сообщения об ошибках. Большинство "специалистов" запускает 1с под учеткой SA (или другой, но с соответствующими суперправами), следовательно, у них такой проблемы не стоит. Зато имеется другая проблема - так называемый фоновый процесс сброса грязных страниц из кэша буфера данных, при выполнении которого, не удается запустить 1с в монопольном режиме.

В MS SQL 2005/2008 системная таблица (уже представление, оставленное для обратной совместимости) sysprocesses помечена устаревшей и в следующих редакциях MS SQL будет удалена. Компания Microsoft рекомендует использовать текущие аналоги - так и поступаем :) Для определения соединений к текущей базе данных (в этом исправленном релизе платформы 1с) больше не используется системная таблица sysprocesses (если ms sql 2005/2008, для ms sql 2000 используется).

Для того, чтобы дать права на VIEW SERVER STATE нужно выполнить простой скрипт:

USE master
GO

GRANT VIEW SERVER STATE TO
 <your_login>
GO

Все остальные настройки по-умолчанию.

 

Общие рекомендации

  • не использовать это решение без достаточного тестирования в вашем окружении;
  • не класть OrdNoChk.prm в каталоги Программы и ИБ;
  • вызывать реструктуризацию, если база данных до этого использовалась с родной BkEnd.dll (в хранимых процедурах есть код, который не проходит по ограничениям MSSQL 2005-2014);
  •  

Возникли проблемы? Отписываемся в следующем формате:

  • версия сборки и дата файлов bkend.dll и bkendutls.dll;
  • сервер СУБД в формате select @@version;
  • версия ОС;
  • конфигурация 1с;
  • действия, которые вызывали проблему;
  • делали ли, как выразился один из тестеров, "так называемую" реструктуризацию; 

Disclaimer

Все права на ПП 1С:Предприятие принадлежат компании 1С (www.1c.ru). Ни один бит оригинальных файлов не изменен, все манипуляции выполняются штатными возможностями Microsoft(c) Windows(c).

Для чего это нужно?

Пока честные пользователи пытаются перейти с 1cv77 на 1cv8.x, необходимо иметь крепкий тыл в виде настроенной инфраструктуры, которая развернута на современном оборудовании и современном ПО. Однако, необходимо соблюсти лицензионную чистоту как по отношению к 1с, так и к Microsoft. Данным решением это получается сделать: бинарники 1c остаются нетронутыми, ПО от Microsoft актуально и современно.

У кого нет острой необходимости менять MS SQL 2000 на более свежие версии, тем нет надобности прибегать к этому решению.

Использование Вами данного решения  идет по принципу "AS-IS".

Критика и конструктивные предложения принимаются. 

History log

  • Реструктуризация теперь завершается инструкцией CHECKPOINT, вместо DUMP TRANSACTION WITH TRUNCATE_ONLY;
  • Изменена схема поиска хинтов;
  • Изменены формальные признаки для поиска хинтов;
  • Реструктуризация проекта;
  • Отключена проверка порядка сортировки (если в каталоге программы или ИБ будет лежать OrdNoChk.prm, то используются родные механизмы платформы);
  • Оптимизирована работа с постоянными объектами проекта;
  • Для версии sql2000 и ниже используются родные механизмы, без вмешательств;
  • Внес ошибку, когда устранял проблему SELECT GetDate();
  • Устранил ошибку (добавил новых :) );
  • Отключил установку/снятие режима bulk/copy;
  • Реализовал возможность запуска 1с через win-авторизацию;

Скачать файлы

Наименование Файл Версия Размер
Solution7

.rar 136,21Kb
11.06.18
1768
.rar 136,21Kb 1768 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Ёпрст 1037 07.03.11 23:10 Сейчас в теме
Поделился всё таки тайным знанием..
31. spock 592 29.03.11 20:08 Сейчас в теме
...Ваш патченый bkend...
- не патченный.
...где не используются прямые запросы...
- такого не задумывалось, если есть такое странное поведение, то оно должно быть исправлено.

Запрос после Отладка(1) совпадает с тем, что поймано профайлером?
432. mybracho 05.04.12 17:16 Сейчас в теме
(1) Ёпрст, ты как гуру, рекомендуешь Солюшн ?
450. DarkAn 938 20.04.12 21:45 Сейчас в теме
Ошибка при загрузке в SQL :(

1CUniSetup27.exe (с SQL 2000), Win Server 2008 R2 x64, SQL 2005
Загружаю из под WinXP,
База Подрядчик строительство 2.3, размер базы в ДБФ ~ 3.5 Гб, в архиве 91Мб

Сделал как сказано:
*переименовал BkEnd.dll в BkEnd0.dll
*добавил те что в архиве (1.0.0.5)
*заменил sqlsrv32.dll и sqlsrv32.rll на сервере в папках System32 и SysWOW64

Начинаю делать загрузку в SQL и вылетает ошибка при создании хранимой процедуры _1sp__1SBKTTL_ChangeTotal судя по ошибке ругается в отсутствии объявления переменной @ObKt1
Скрин прикреплен

В профайлере поймал текст процедуры:

Create procedure _1sp__1SBKTTL_ChangeTotal(@Date DATETIME, @Kind CHAR(1), @MonthOfQuart INTEGER, @ProvPart
INTEGER, @FlAdd INTEGER, @Sum NUMERIC(15, 3), @UpdateOb INTEGER, @AccId CHAR(9), @CurId CHAR(9), @Flags
TINYINT, @SC0 CHAR(13), @VSC0 INTEGER, @OSC0 TINYINT, @SC1 CHAR(13), @VSC1 INTEGER, @OSC1 TINYINT, @SC2
CHAR(13), @VSC2 INTEGER, @OSC2 TINYINT) AS

SET NOCOUNT ON
DECLARE @ObDt1 NUMERIC(15,3),@ObDt2 NUMERIC(15,3),@ObDt3 NUMERIC(15,3)
DECLARE @ObKt1 NUMERIC(15,3),@ObKt2 NUMERIC(15,3),@ObKt3 NUMERIC(15,3)
DECLARE @Sd NUMERIC(15,3)
SELECT @ObDt1=0,@ObDt2=0,@ObDt3=0,@ObKt1=0,@ObKt2=0,@ObKt3=0,@Sd=0
IF @UpdateOb=1 BEGIN
IF @ProvPart=0 BEGIN
IF @MonthOfQuart=0 IF @FlAdd=1 SELECT @ObDt1=@Sum ELSE SELECT @ObDt1=-@Sum
ELSE IF @MonthOfQuart=1 IF @FlAdd=1 SELECT @ObDt2=@Sum ELSE SELECT @ObDt2=-@Sum
ELSE IF @MonthOfQuart=2 IF @FlAdd=1 SELECT @ObDt3=@Sum ELSE SELECT @ObDt3=-@Sum
END
ELSE BEGIN
IF @MonthOfQuart=0 IF @FlAdd=1 SELECT @ObKt1=@Sum ELSE SELECT @ObKt1=-@Sum
ELSE IF @MonthOfQuart=1 IF @FlAdd=1 SELECT @ObKt2=@Sum ELSE SELECT @ObKt2=-@Sum
ELSE IF @MonthOfQuart=2 IF @FlAdd=1 SELECT @ObKt3=@Sum ELSE SELECT @ObKt3=-@Sum
END
END
ELSE BEGIN
IF ( ( @FlAdd=1 AND @ProvPart=0 ) OR ( @FlAdd=0 AND @ProvPart=1 ) )
SELECT @Sd= @Sum
ELSE
SELECT @Sd=-@Sum
END
IF @Kind>'3' AND @Kind<'7' BEGIN
SELECT @SC0=' '
SELECT @SC1=' '
SELECT @SC2=' '
END
Update _1SBKTTL set
OBDT1=case when abs(OBDT1+@ObDt1)>99999999999.999 then 99999999999.999 else OBDT1+@ObDt1 end,
OBDT2=case when abs(OBDT2+@ObDt2)>99999999999.999 then 99999999999.999 else OBDT2+@ObDt2 end,
OBDT3=case when abs(OBDT3+@ObDt3)>99999999999.999 then 99999999999.999 else OBDT3+@ObDt3 end,
OBKT1=case when abs(OBKT1+@ObKT1)>99999999999.999 then 99999999999.999 else OBKT1+@ObKT1 end,
OBKT2=case when abs(OBKT2+@ObKT2)>99999999999.999 then 99999999999.999 else OBKT2+@ObKT2 end,
OBKT3=case when abs(OBKT3+@ObKT3)>99999999999.999 then 99999999999.999 else OBKT3+@ObKT3 end,
SD =case when abs(SD +@Sd )>99999999999.999 then 99999999999.999 else SD +@Sd end
where DATE=@Date and KIND=@Kind and ACCID=@AccId and CURRID=@CurId and SC0=@SC0 and SC1=@SC1 and SC2=@SC2
IF @@ROWCOUNT=0 BEGIN
INSERT INTO _1SBKTTL VALUES
(
@Date,@AccId,@CurId,@Kind,@ObDt1,@ObKt1,@ObDt2,@ObKt2,
@ObDt3,@ObKt3,@Sd,@Flags,@SC0,@VSC0,@OSC0,@SC1,@VSC1,@OSC1,@SC2,@VSC2,@OSC2
)
END


хотя судя по тексту:
DECLARE @ObKt1 NUMERIC(15,3),@ObKt2 NUMERIC(15,3),@ObKt3 NUMERIC(15,3)
она объявляется.

Попытался выполнить этот запрос просто в SQL получил ошибку
Msg 137, Level 15, State 2, Procedure _1sp__1SBKTTL_ChangeTotal, Line 38
Must declare the scalar variable "@ObKT1".


При разборе полетов попытался сделать замену вот в этих частях:

OBKT1=case when abs(OBKT1+@ObKT1)>99999999999.999 then 99999999999.999 else OBKT1+@ObKT1 end,
OBKT2=case when abs(OBKT2+@ObKT2)>99999999999.999 then 99999999999.999 else OBKT2+@ObKT2 end,
OBKT3=case when abs(OBKT3+@ObKT3)>99999999999.999 then 99999999999.999 else OBKT3+@ObKT3 end,


на @ObKt1 ("t"-маленькая) и процедура выполнилась без проблем.

теперь вот думаю как можно это дело поправить? чтобы при загрузке в SQL, 1C формировала правильный текст запроса.
Прикрепленные файлы:
451. DarkAn 938 20.04.12 21:50 Сейчас в теме
(450)+
До этого база была на win 2003, SQL 2005 помню что тоже шаманил для запуска, но там все работало. По определенным причинам пришлось срочно на новом сервере запустить все под новой операционкой. И тут встал стопор. Сегодня более менее как-то перекантовавлись (8 человек запустил), но к понедельнику надо чтоб работало 20+ пользователей в DBF - не камильфо в таком количестве.

Срочно прошу о помощи. ХЗ еще какие ошибки повалят следом :(
2. Ёпрст 1037 07.03.11 23:11 Сейчас в теме
Метода опробована хоть?
3. vasilykushnir 62 07.03.11 23:35 Сейчас в теме
Опробована, опробована.
Рабочая база на 2000 скуле, копия дома и на работе на 2005 - уже больше года никак руки не дойдут перевести и рабочую на 2005-й.
577. fatenkov 10.01.13 10:02 Сейчас в теме
--
уважаемый, в публикации http://infostart.ru/public/82018/
по кнопке скачать, сразу скачивается solution5.
А то что там есть другие версии, то пока не нажмешь на "посмотреть и скачать все файлы (3)" не узнаеш. Я например не знал.
--

Я тоже сначала скачал 5 версию, ну а потом пришлось почитать обсуждения и скачать 7-ю :).
Есть просьба к Автору, было бы неплохо подвязывать к кнопке скачать последнюю версию, если конечно не сильно затруднит.
4. waol 269 09.03.11 13:47 Сейчас в теме
с 64-битной Windows 7 - работать будет ?
5. wolfsoft 2422 09.03.11 13:52 Сейчас в теме
Мне вроде нафиг не надо, но за такое "плюс" надо поставить просто за сам факт существования :D
jeniks; json; Зеленоград; +3 Ответить
6. spock 592 09.03.11 16:56 Сейчас в теме
Перенесу-ка сюда.

Главная цель - загрузиться как можно раньше, а там разберемся, следовательно, ТСВК для этого случая не подходит.

Выбор способа загрузки
Возможны разные способы загрузки своей dll в адресное пространство приложения-жертвы по легальности и сложности - в интернетах об этом полно инфы. Я выбрал так называемый Trojan/Proxy dll. Кому интересно могут поизучать тему в интернетах и/или у Рихтера. Если вкратце, то суть метода заключается в том, что вместо родной dll кладется своя, которая тупо редиректит экспортируемые функции в нужную dll. Почему и называется proxy dll. Видел где-то описание методов, когда делается такой финт без подмены dll, но это отдельная история, если Саня (orefkov) захочет, то он ее расскажет :) Со способом загрузки определились.

Способ проброса экспортируемых функций
Как известно, имеется такое понятие, как экспортируемые и импортируемые функции. Говорим за первое. Т.е. если в коде функции помечены экспортируемыми, то в соответствующей таблице экспорта они будут фигурировать и значит, какой-то другой модуль может их использовать, объявя у себя ее импортируемой (следовательно, будет светиться в таблице импорта). Вот напочитать: http://msdn.microsoft.com/en-us/library/a90k134d(VS.80).aspx
Зная, все это осталось только прикинуться BkEnd.dll, в которой реализован проброс. Как выяснилось, BkEnd.dll экспортирует чуть больше 4 тыс. функций... Вы же не подумали, что я все пробросы делал руками? :) Берем в руки DUMPBIN.exe с ключом /EXPORTS, скриптуем необходимое и получаем, что нужно. Я было начал делать проброс через pragma-директивы, но почему-то на трех экспортируемых функциях компилятор падал, пришлось делать старым добрым def-файлом. Формат в нашем случаем простой:
ИмяФункции = BkEnd0.ИмяФункции
И вот так для >4 тыс. функций.

Такие пробросы (FuncName = SomeDLL.FuncName) придумала Microsoft давно, вроде, как пишут историки, для случаев, когда будет нехватать места на винтах, чтобы это разруливать. Ну вот и смогли загрузиться и даже пробросы сами работают. Т.е. все просто до безобразия. Из программирования было только скриптование вывода DUMPBIN.

Теперь пытаемся цепануться к mssql2005/2008, как и следовало ожидать, ругается на версию скуля. Если пытаемся цепляться к скулю с машинок, где ОС Vista/7/2008 еще видим предупреждение о неверной версии odbc. Проблемы одного порядка, как оказывается.

Небольшая вводная - 1с использует odbc, как уже догадались.

Для определения версии СУБД и версии odbc (драйвера и диспетчера) 1с использует функцию из ODBCAPI SQLGetInfo: http://msdn.microsoft.com/en-us/library/ms711681(VS.85).aspx
Где второй параметр InfoType:
- SQL_ODBC_VER (Диспетчер драйверов odbc32.dll);
- SQL_DRIVER_VER (Драйвер odbc sqlsrv32.dll, это определяется строкой подключения);
- SQL_DBMS_VER (Версия СУБД);
Т.е. эти значения 1с запрашивает, на что получает соответствующие ответы.
Начнем с конца SQL_DBMS_VER - для 2005 и 2008 там будет 09.xxx.xxxx и 10.xxx.xxxx соответственно. Видимо, в 1с стратегически решили остановиться на 08.xxx.xxxx, и все, что старше обрабатывать, как дефолтная ошибка (switch там вроде) - потому получаем неадекватное сообщение об ошибке.
С SQL_DRIVER_VER та же самая ситуация. Но SQL_ODBC_VER обрабатывается ровно, потому что в новых ОС версия таже.

Знаем название функции, через которую 1с получает версии, значит путь решения близок. Путь решения: <censored>.

В народной версии, где патчится BkEnd.dll просто в нужных местах делаются переходы (аналог GOTO) тех мест, где преверяются версии. Точнее смогут ответить только авторы тех решений. Для этого решения практически тоже самое, т.е. если версия больше 08.xxx.xxxx, то значит показываем 1с версию 08.xxx.xxxx. С версие odbc так же, только номера другие :)
И вот уже можем цепляться к MSSQL 2005/2008 (MSSQL 2000 и ниже тоже в силе), а так же с новых ОС, где поменяли версии odbc.

Вот все до этого было бесплатным бонусом, а вот запуск без режима совместимости - главный профит.
romkus; trdm; Nowa; Gruuush; lapat; autobuh; xzorkiix; vdolynsky; DimaP; Segate; udaffkaa; Фрэнки; +12 Ответить
8. orefkov 1012 10.03.11 01:32 Сейчас в теме
(6)
Хлеба и зрелищ!
Давай про режим совместимости описывай.
Anatolka; +1 Ответить
7. spock 592 09.03.11 16:58 Сейчас в теме
waol пишет:с 64-битной Windows 7 - работать будет ?

Вот проверить и убедиться мне негде, но должно работать.
9. pupkinSana 81 10.03.11 13:48 Сейчас в теме
Интересно, а режим совместимости значительно влияет на тормоза?
616. stepman3 7 25.03.13 10:38 Сейчас в теме
ну вот.
лТекст =
|Create Procedure dbo." + лХранПроцедура + "
|@mode int = 100,
|@ostastext bit = 1,
|@mode1 int = 0,
|@idtovar char(9),
|@data_ta DateTime,
|@where1 varchar(300) = null,
|@ostatok int OUTPUT,
|@osttext varchar(300) OUTPUT
|
|AS
|BEGIN
|
|SET NOCOUNT ON
|
|declare @ost1 int
|declare @rez1 int
....
";

DataBase = СоздатьОбъект("ODBCDatabase");
DataBase.Attach1C();

RecordSet = СоздатьОбъект("ODBCRecordSet");
RecordSet.SetDatabase(DataBase);


RecordSet.Выполнить(лТекст);

p.s: файлик bkend0.dll патчен
Исправление ошибки 100% загрузки процессора при ожидании блокировки в
1С:Предприятие 7.7, от romix
782. CheBurator 3422 08.11.15 16:29 Сейчас в теме
Наблюдается проблема. Очень плохая.
ТиС.

Тривиальный запрос (время исполнения которого д.б. ~10 секунд) отрабатывается часами.
Запросы тривиальные
.

 ТекстЗапроса = " Период с ДатаН по ДатаК; 
    |Склад            = Регистр.Продажи.Фирма;
    |Номенклатура    = Регистр.Продажи.Номенклатура;
    |Количество        = Регистр.Продажи.Количество;
    |
    |Функция КоличествоПродажи = Сумма(Количество);
    |
    |Условие(Склад в СписокСкладов);
    |Условие(Номенклатура в СЗтовары);
    |
    |Группировка День;
    |Группировка Склад Без Групп;
    |Группировка Номенклатура Без Групп;
    |";
Показать

СписокСкладов - список элементов, групп нет.
СЗтовары - список элементов, групп нет.

Период - ровно месяц (октябрь).
Движений вообщем мало (менее миллиона записей в таблице регистра, в справочнике номенклатуры всего ~130 тыс, в выборке (список товаров) ~2800 участвуют). По моему разумению тормозит адски. Не просто адски, а издевательски.

Осилил запустить профайлер. наблюдаю малопонятные для меня действия...
Постоянно идет создание и выполнение
CRE ATE   PROCEDURE #RGTEMP1PROC(@current CHAR(9)) AS 
   SET NOCOUNT ON 
   SET TEXTSIZE 0 
   DECLARE @VAL CHAR(9) 
   IF EXISTS (SEL ECT * FR OM SC84 WITH (NOLOCK) WHERE ID=@current AND ISFOLDER=1 ) BEGIN 
       SET NOCOUNT ON 
       INS ERT INTO #RGTEMP1 SEL ECT ID,ISFOLDER FR OM SC84 WITH (NOLOCK) WHERE PARENTID=@current AND ID NOT IN( SEL ECT VAL FR OM #RGTEMP1 ) 
       WHILE 1=1 BEGIN 
           SEL ECT @VAL=MAX(VAL) FR OM #RGTEMP1 WH ERE ISFOLDER=1 
           IF @VAL IS NULL BREAK 
           INS ERT IN TO #RGTEMP1 SELECT ID,ISFOLDER FR OM SC84 WITH (NOLOCK) WH ERE PARENTID=@VAL AND ID NOT IN( SELECT VAL FR OM #RGTEMP1 ) 
           DELETE FR OM #RGTEMP1 WH ERE VAL=@VAL AND ISFOLDER=1 
       END 
   END 
   ELSE 
   IF NOT EXISTS( SELE CT * FR OM #RGTEMP1 WH ERE VAL=@current ) 
       INSERT #RGTEMP1 VALUES(@current, 2)

return (0)
Показать

создание этой процедуры
выполнение ее (длительность=1)
и потом выполнение (длительность=16)

exec #RGTEMP1PROC ' 25I1CBD'
dr op procedure #RGTEMP1PROC

только постоянно идентификатор в кавычках меняется

Регистр.Продажи - оборотный (типовая ТиС)
sc84 - справочник номенклатуры

и так - много много раз... явно что-то неправильно..
запрос уходит на ОЧЕНЬ долгое выполнение (на десятки минут - час)
если заккомментарить условие на номенклатуру ~7 сек.

Ниже похожий запрос, тривиальный
ТекстЗапроса = " Период с ДатаН по ДатаК; 
    |Склад            = Регистр.ОстаткиТМЦ.Фирма;
    |Номенклатура    = Регистр.ОстаткиТМЦ.Номенклатура;
    |Количество        = Регистр.ОстаткиТМЦ.Количество;
    |
    |Функция КоличествоНачОст = НачОст(Количество);
    |Функция КоличествоКонОст = КонОст(Количество);
    |Функция КоличествоПриход = Приход(Количество);
    |Функция КоличествоРасход = Расход(Количество);
    |
    |Условие(Склад в СписокСкладов);
    //|Условие(Номенклатура в СЗтовары);
    |
    |Группировка День;
    |Группировка Склад Без Групп;
    |Группировка Номенклатура Без Групп;
    |"; 
Показать


с незакомментареным условием - вообще нереально дождаться.
закомментарил условие - один день в периоде (задан месяц) обрабатывается 3 мин, то есть месяц - как минимум 1,5 часа. бред
в профайлере по запросу к остаткам ползет вот такое: http://screencast.com/t/RS8I0lks

база мизерная, ~7Гб, выгрузка в зипе занимает 186 Мб. - то есть вообще ни о чем...

ОС - win2008R2 enterprise 64x? оперативка 32 Гб, свободной достаточно.
SQL - Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright © Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
1C - 7.70.027,
bkend - 1.0.0.7 http://screencast.com/t/oZuOAmGOoDNI
bkendutls - версия не указана в свойствах, дата изменения 17.01.2012 http://screencast.com/t/oZuOAmGOoDNI
конфигурация - на основе типовой ТиС (934)
реструктуризация - насколько мне известно - запускалась и работала изначально на секретном релизе (точнее сказать не могу). Реструктуризации проводились на этом релизе движка.

Что делать, куда стучать?
783. varelchik 10.11.15 15:42 Сейчас в теме
(782) А что мешает переписать на прямой запрос с использованием ВТ?
788. CheBurator 3422 12.11.15 00:38 Сейчас в теме
(783) не владею прямыми запросами. запрос прочту - примерно пойму что на выходе, но самому написать слабо, тольо самые простые плоские выборки
784. Berckk 10.11.15 23:46 Сейчас в теме
(782) CheBurator, а обслуживание базы то базы давно делалось (реиндекс, статистика)?
789. CheBurator 3422 12.11.15 00:40 Сейчас в теме
(784) по-моему - никогда, то есть с год примерно...
и на измерениях регистров не везде стоят нужные флажки.
но править проблематично - пойдетна точки пересчет регистров а там машинки очень слабые
902. SatanClaws 129 02.09.19 05:09 Сейчас в теме
Проблема с секретным релизом:
При проведении документов с флагом ОперативныйУчет 1С впадает в ступор и тупо ничего не делает.
Ставишь брекпоинт в ОбработкаПроведения - отладчик туда даже не заходит.
Документы, для которых в конфигураторе не стоит флаг "Оперативный учет" проводятся нормально.

В скулевом профайлере вижу следующее:
exec sp_executesql N'Select * from _1SCONST WITH (NOLOCK) where ID=@P1 and OBJID=@P2 and DATE<=@P3 order by ID DESC, OBJID DESC, DATE DESC, TIME DESC, DOCID DESC',N'@P1 int,@P2 varchar(9),@P3 datetime',60,'     0   ','1753-01-01 00:00:00'
exec sp_executesql N'Select * from _1SCONST WITH (NOLOCK) where ID=@P1 and OBJID=@P2 and DATE<=@P3 order by ID DESC, OBJID DESC, DATE DESC, TIME DESC, DOCID DESC',N'@P1 int,@P2 varchar(9),@P3 datetime',58089,'     0   ','1753-01-01 00:00:00'
exec _1sp_SC208_ByID '    QT   '
exec _1sp_SC135_ByID '    5Z   '
exec _1sp_SC156_ByID '    2I   '
exec _1sp_SC156_ByID '    2J   '
exec _1sp_SC156_ByID '    2L   '
exec _1sp_SC156_ByID '    2Q   '
exec _1sp_SC156_ByID '    93   '
exec _1sp_SC156_ByID '    8Q   '
exec _1sp_SC156_ByID '    A0   '
exec _1sp_SC156_ByID '    8Z   '
exec _1sp_SC156_ByID '    3M   '
exec _1sp_SC208_ByID '    C9   '
exec _1sp_SC54252_ByID '     0   '
exec _1sp_SC40412_ByID '     2   '
exec _1sp__1SJOURN_ByIDDOC ' 147S2   '

set implicit_transactions on 

exec _1sp__1SJOURN_TLockX 
declare @p1 int
set @p1=1073741828
declare @p2 int
set @p2=180150015
declare @p5 int
set @p5=2
declare @p6 int
set @p6=1
declare @p7 int
set @p7=-1
exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 varchar(18),@P2 varchar(10)',N'Select * from _1SJOURN WITH (NOLOCK) where DNPREFIX=@P1 and DOCNO=@P2 order by DNPREFIX, DOCNO, ROW_ID',@p5 output,@p6 output,@p7 output,'     531362019    ','00061725  '
select @p1, @p2, @p5, @p6, @p7
exec sp_cursorfetch 180150015,1,0,1

select VERSTAMP from _1SJOURN WITH (NOLOCK) where ROW_ID=75184

exec sp_executesql N'Update _1SJOURN set  IDJOURNAL=@P1, IDDOC=@P2, IDDOCDEF=@P3, APPCODE=@P4, DATE_TIME_IDDOC=@P5, DNPREFIX=@P6, DOCNO=@P7, CLOSED=@P8, ISMARK=@P9, ACTCNT=@P10, VERSTAMP=@P11, RF53012=@P12, RF53177=@P13, RF53736=@P14, RF53742=@P15, RF53748=@P16, RF57060=@P17, RF57068=@P18, RF57601=@P19, RF60706=@P20, SP53006=@P21, SP53007=@P22, SP54299=@P23 where  ROW_ID=@P24',N'@P1 int,@P2 varchar(9),@P3 int,@P4 smallint,@P5 varchar(23),@P6 varchar(18),@P7 varchar(10),@P8 tinyint,@P9 bit,@P10 int,@P11 int,@P12 bit,@P13 bit,@P14 bit,@P15 bit,@P16 bit,@P17 bit,@P18 bit,@P19 bit,@P20 bit,@P21 varchar(9),@P22 varchar(9),@P23 varchar(9),@P24 int',0,' 147S2   ',53136,53,'201908285YC1S0 147S2   ','     531362019    ','00061725',5,0,9,1,0,1,0,0,0,0,0,0,0,'    FI   ','    C9   ','     0   ',75184
exec _1sp__1SJOURN_ByIDDOC ' 147S2   '
exec _1sp__1SSYSTEM_TLock 
Показать


В зависимости от вида документа запросы могут различаться, но всегда заканчиваются
exec _1sp__1SJOURN_ByIDDOC
exec _1sp__1SSYSTEM_TLock
(если я правильно понимаю, то процесс записи измененных данных документа в базу прошел и по идее 1С как-раз должна приступить непосредственно к проведению документа)

Платформа 7.7.0.27 чистая + солюшн7
bkend.dll версия 1.0.0.7 от 17/01/2012
bkendutls - от 17/01/2012
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2550.0 (X64) Jun 11 2012 16:41:53 Copyright © Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
"реструктуризация" делалась
903. SatanClaws 129 02.09.19 10:23 Сейчас в теме
(902) Почти неделю взрывал себе мозг, пересобирал платформу и производит прочие непотребства.
Стоило написать сюда, как тут же нашел причину.

Короче, сегодня обратил внимание, что период расчета итогов стоит "5 дней".
Перевел на "месяц" - документы стали проводиться.

Для проверки - перевел периодичность назад на "5 дней" - та же фигня и бездейственный ступор 1Ски.
10. spock 592 10.03.11 16:24 Сейчас в теме
опять скопипаст

Некоторые могут возразить, что дескать почему мы игнорируем версии новых odbc, не приведет ли это к неопределенному поведению? Может быть Microsoft сошла с ума и в новых версиях odbc-драйверов все переделала? Имеет место быть такое опасение, однако MSDN умалчивает тот факт, что Microsoft сошла с ума. Значит считаем, что все ровно.

Дошли до момента, где база переводится в родной режим (90-2005, 10-2008)
Так как уже имеется опыт подмены вызовов ODBCAPI, то ничто не запрещает быть последовательным далее.
Как известно odbc может непосредственно передавать инструкцию на исполнение, так и через механизм предварительной подготовки. А именно:
- непосредственно SQLExecDirect: http://msdn.microsoft.com/en-us/library/ms713611(v=VS.85).aspx
- подготовленный SQLPrepare: http://msdn.microsoft.com/en-us/library/ms710926(v=VS.85).aspx

Правда имеется таких функций пара (A/W), и помня, что 1с далеко не юникод, то пара W-функций нам не нужна.
Вот и все проблемы с запуском на 2005/2008 свелись к узкому горлышку, мимо которого ничто не проскочет.

Применяя сим-салабим, получаем в руки все запросы, уходящие на сервер - делай с ними что хочешь. А хотим мы, чтобы они воспринимались скулем 2005/2008.

В чем проблема с запросами?
1. С SQL2005 ужесточили синтаксис табличных хинтов (это которые в скобках идут после имени таблицы), теперь нужно указывать ключ. слово WITH:
- про 2000 читаем с абзаца Table Hints: http://technet.microsoft.com/en-us/library/aa258869(SQL.80).aspx
- про 2005 читаем с абзаца WITH (<table_hint> ): http://msdn.microsoft.com/ru-ru/library/ms177634(v=SQL.90).aspx
- про 2008: http://msdn.microsoft.com/ru-ru/library/ms187373(v=SQL.100).aspx

Вывод: если есть хинты, то разделяем их запятыми и вставляем ключ. слово WITH. Если хинт один, то на всякий случай вставляем WITH тоже - после SQL2008 обещают запретить вообще не указывать это ключ. слово. А таааакже вырезаем нафиг хинт, указывающий какой индекс использовать.

Так как разнообразие запросов, генерируемых 1с, мало, то проблема решилась небольшим регулярным выражением.

2. После реструктуризации 1с обрезает журнал транзакций: DUMP TRANSACTION ...
Вот этот момент спорный и каюсь поспешил - заменил на ALTER DATABASE <DB> SET SINGLE_USER
В следующей версии просто ничего слаться не будет. Потому как у некоторых включен режим FULL, и после такой инструкции нужно прописывать руками. Ну и если не слать ничего, то и бекапирование ломаться не будет.
11. Cthulhu 11.03.11 17:35 Сейчас в теме
(10) "В следующей версии просто ничего слаться не будет." - под "следующей" имеется ввиду то, что тут выложено, или то, что ещё будет? если второе - то уж заодно и "когда приблизительно?"
13. spock 592 11.03.11 17:50 Сейчас в теме
(11)на выходных доделаю.
(12)так не вижу этой проблемы на 2008. Я не могу ее повторить.
14. Cthulhu 11.03.11 17:58 Сейчас в теме
(13): спасибо, буду заглядывать с нетерпением.
(в 2005-м вроде есть проблема - там же в принципе несложно должно быть конец интервала если он 30.12.9999 - тупо вырезать, нэ? думаю что тем, кто на 2005-х крутит или - как я - собирается - будет очень нужно)

ЗЗЫ: а, да, забыл по первых словах увлекшись громадьем и важностью решения - респектище + спасибище тебе!
12. Cthulhu 11.03.11 17:45 Сейчас в теме
ЗЫ: и если уж "Вот и все проблемы с запуском на 2005/2008 свелись к узкому горлышку, мимо которого ничто не проскочет." + "Так как разнообразие запросов, генерируемых 1с, мало, то проблема решилась небольшим регулярным выражением." - то в этом же "узком горлышке" мо стоило бы подрихтовать заодно уж и вот эту - "ВыбратьПодчиненныеДокументы() проблема началась с sql2005. точнее проблема не в sql а в плохом запросе который генериться из 1с когда НЕ ЗАДАН интервал подчиненных документов старшая дата береться равной 30.12.9999 ( а надо 31 или вообще не ставить это условие)" (с) - беду??..
15. gordon_free_man 20.03.11 01:40 Сейчас в теме
Полная лажа!!!!! В архиве 2 библиотеки. BkEnd.dll BkEndUtls.dll. Так вот замена BkEnd.dll влечет ошибку "Точка входа и так далее". BkEndUtls.dll не дало тоже результатов. А еще назвали Секретный релиз платформы v77.27.1 :)))))

Много писать не буду. Но суть проблеммы в том что решил связать как и многие Windows Server 2008 (2008R2) и SQL 2008 (2008R2). Собственно говоря это все работает и хорошо! Только одно НО!!! Загружать базу данных надо из под Windows XP!!! OrdNoChk.prm не работает с конфигуратором при загрузке данных кроме Windows Xp. Так База загруженная с XP потом нормально открываеться В 2008 и Seven.

Вот посоветовали этот топик. Как и писал полная фигня!!!! Интересно тот кто создавал он хоть сам проверял?
16. CheBurator 3422 20.03.11 01:52 Сейчас в теме
(15) хоть бы запостил что конкретно фигпя/// а то автору тебя отлавливать надо.. на мисту бжать.. там читать...
pavlo; artbear; +2 Ответить
17. gordon_free_man 20.03.11 01:59 Сейчас в теме
Еще раз повторюсь при замене BkEnd.dll библиотеке из архива 1с ПИШЕТ ОШИБКУ! Файл я прикрепил..... Не работает этот секретный вариант:)
Прикрепленные файлы:
18. spock 592 20.03.11 09:09 Сейчас в теме
(17)у кого как... В твоем случае он не работает - ищи другие варианты.
21. cathode 20.03.11 15:51 Сейчас в теме
Что касается ошибки точки входа - Вы абсолютно уверены, что взяли BkEnd.dll от 27-го релиза? И что установка была произведена в точности так, как описывает автор разработки?
Ошибка порядка сортировки при загрузке с помощью стандартной BkEnd.dll решается очень просто: смещение 0x0018a79d, отдизассемблируйте и посмотрите внимательно на байтик. Если Ваш профессионализм составляет хотя бы сотую долю Вашего самолюбия, Вы разберетесь, что с этим байтиком делать.
В противном же случае, чтобы получить помощь, нужно всего лишь корректно попросить о помощи, и не более того. Окружающие Вас люди в Ваших личных тараканах не виноваты.
22. valery_ok 23.03.11 00:11 Сейчас в теме
спасибо автору.
у меня все работает на w2k8 R2 и sql w2k8 R2, но 1с не увидела ключа (буду разбираться, видимо в 64х битном режиме что-то) и при загрузке данных ругается на кодовую страницу, хотя с подключенной базой с sql2000 все нормально.
кстати можно ли узнать об изменениях которые автор внес в последнее время, а то файлы обновляются, а что должно изменится неясно
23. spock 592 23.03.11 16:38 Сейчас в теме
(22)убей OrdNoChk.prm каталогах программы и ИБ. Он больше не нужен, и даже больше - мешает.
24. spock 592 23.03.11 16:39 Сейчас в теме
25. sml 36 28.03.11 14:27 Сейчас в теме
у меня w7 x64 + ms_sql_2005sp3 базы перенес как файлы (отцепил, скопировал и прицепил к новому серваку)
при запуске Предприятия ругается на несоответствие таблиц (prm-ки в каталоге нет)

что посоветуете?
26. spock 592 28.03.11 16:48 Сейчас в теме
(25)"несоответствие таблиц" - это md+dds не соответствуют физической структуре БД или что? Если есть проблемы, то ошибку лучше поточнее озвучивать вплоть до цитаты.
"prm-ки в каталоге нет" - посмотреть нужно в двух каталогах - КаталогИБ() и КаталогПрограммы().
Ну и еще, там в рекомендациях я просил вызывать реструктуризацию, т.к. в ХП тоже есть код проблемный по синтаксису.
27. sml 36 28.03.11 20:35 Сейчас в теме
Несоответствие таблиц - это про кодовые таблицы. Пришлось вернуть prm-ку в БИН-каталог. А чтобы не ругалась система на версию ODBC, пришлось заменить 3 файла драйвера в системном каталоге (от w2003servR2).
Да, если кто пользует Openconf, то его пришлось установить только из тотоалкомандира, запущенного с правами Админа (старт батника с правами Админа не позволяет зарегить библиотеки).
28. sml 36 29.03.11 10:10 Сейчас в теме
Скачал последнюю версию (у меня до этого была от 7марта) без prm-ки нормально подключился, но вылез другой глюк:
Invalid column name 'getdate'

на запросе:

select
case
when exists(
select Отгрузка.iddoc

from $Документ.Рейс as Рейс (nolock)
inner join $Документ.ОтгрузкаТМЦ as Отгрузка (nolock) on $Отгрузка.Док_Рейс = Рейс.iddoc and Рейс.iddoc = :ТекРейс
inner join _1sjourn as ЖурОтгрузки (nolock) on ЖурОтгрузки.iddoc = Отгрузка.iddoc
left join $Справочник.РеестрДокументовДОП as Реестр (nolock) on $Реестр.Документ = Отгрузка.iddoc
left join $Справочник.Контрагенты as Контрагенты (nolock) on Контрагенты.id = $Рейс.Покупатель

where
isnull($Реестр.ДокументыПолученыБух, 0) = 0
and datediff(day, cast(left(ЖурОтгрузки.date_time_iddoc, 8) as datetime), dateadd(day, datediff(day, 0, getdate()), 0)) > 5
and $Контрагенты.ВидКонтрагента <> $Перечисление.ВидыКонтрагентов.ЧастноеЛицо
and $Рейс.НалОпт <> 1

group by Отгрузка.iddoc

) then 1
else 0
end as [флДокументарнаяЗадолженность$Число]

Команда идет: ВыполнитьСкалярный
29. spock 592 29.03.11 16:48 Сейчас в теме
(28)ага, весь день сегодня хотел спросить на какой версии оно так вылезло - а оно вонокак.

Так это не глюк, а новые задачи для разработчика этого sql-скрипта :)
Решение исправляет проблемы платформы, а свои скрипты каждый правит сам под себя.

ps: Лучше выкладывать уже распарсенные sql-скрипты.
33. zk96 30.03.11 00:42 Сейчас в теме
(29)
У меня тоже GetDate() не сработал
Было
ТекстЗапроса="
|SELECT GETDATE()
|";
Сделал
ТекстЗапроса="
|SELECT current_timestamp
|";
Теперь запрос работает, но почему GETDATE() непринимается? SMS его прекрасно воспинимает.
Дальше-болше. Понятно, что некотрые запросы прийдется переписать, но не понимаю почему так.
Ведь скуль2005 и 2008 прекрасно воспринимают табличные хинты типа NOLOCK SERIALIZABLE и тп без WITH.
Может я что-то не так настроил? Что значит реструкторизация? Может я не понял как ее произвести.
SPOCK, напиши пожалуста об этом попродробней.
39. spock 592 30.03.11 20:46 Сейчас в теме
у кого была засада с GetDate() попробуйте новый вариант.

(33)Про "Дальше-болше." давай подробнее. Пример запроса, на котором проблема проявляется.
"Что значит реструкторизация?" - это когда метаданные изменились и нажали ctrl+s.

Небольшой курс выяснения проблем: на чем-то валится? Значит ловим запрос профайлером и публикуем здесь - проблема решается.

(35)Ничего не нужно делать дополнительно, если есть проблема - она должна быть решена в этой библиотеке, кроме запросов, выполняемых через 1с++. Свои sql-запросы проще модифицировать.

(37)какая версия решения? Файлик OrdNoChk.prm нужно удалить вообще из каталогов ИБ и BIN. Он будет мешать, я этот момент отражал в описании.
40. lordxxl 31.03.11 06:43 Сейчас в теме
(39) OrdNoChk.prm везде удалил. Не помогло - по прежнему говорит что проядок сортировки отличается от системного

Ура всё заработало+) я просто использовал старый релиз!
41. sml 36 31.03.11 09:20 Сейчас в теме
(39) Спасибо, spock, теперь ошибка пропала. Буду смотреть дальше на своей копии. Если что вылезет, выложу 2 варианта запроса из профайлера: 1) с твоей dll и 2) с патченой
30. sml 36 29.03.11 20:00 Сейчас в теме
Если я правильно понимаю, Ваш патченый bkend предназначен только для конфигураций, где не используются прямые запросы, например с использованием 1cpp?
32. ЗАК 30.03.11 00:07 Сейчас в теме
Отличная вещь, спасибо. На Win2008R2 x64 + SQL2008R2 заработало как по маслу
34. 1yh1 30.03.11 12:01 Сейчас в теме
zk96 пишет:
У меня тоже GetDate() не сработал

А может удобнее объявить свою функцию GetDate()?
Возвращающую current_timestamp.
Мне интересно: есть ли какие-то преимущества в использовании формата SQL 2005/8?
В скорости работы 1C, мож в блокировках, исчезновении дэдлоков?
Из недостатков, я так понял: нельзя делать реорганизацию, надо переписывать некоторые прямые SQL запросы
Автору, конечно: +. Вещь нужная, другой вариант решения этой проблемы, написание, как Ethersoft, ODBC-драйвера с парсером.
35. zk96 30.03.11 12:39 Сейчас в теме
(34) Что значит "объявить свою функцию GetDate()" ? Это функция скуля, разве можно ее переписать?
36. 1yh1 30.03.11 17:52 Сейчас в теме
(35)
будет dbo.GetDate(), всё-равно менять, так что лучше current_timestamp
918. CheBurator 3422 25.06.20 16:06 Сейчас в теме
Мопед не мой. скопипастил, чтобы не потерялось (может уже было)
https://forum.mista.ru/topic.php?id=855116&page=1#69
.
Sql 2008 + секретный релиз 1С 77 нормально пашет, еще в новых SQL SQL2012+ нужно запускать скрипт исправления sp_dboption.sql

USE [master]
GO


/****** Object: StoredProcedure [dbo].[sp_dboption] Script Date: 21.03.2012 7:33:37 ******/


SET ANSI_NULLS ON
GO


SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[sp_dboption] -- 1999/08/09 18:25
*dbname sysname = NULL, -- database name to change
*optname varchar(35) = NULL, -- option name to turn on/off
*optvalue varchar(10) = NULL -- true or false
as


set nocount on
declare *dbid int -- dbid of the database
declare *catvalue int -- number of category option
declare *optcount int -- number of options like *optname
declare *allstatopts int -- bit map off all options stored in sysdatqabases.status
-- that can be set by sp_dboption.
declare *alloptopts int -- bit map off all options stored in sysdatqabases.status
-- that can be set by sp_dboption.
declare *allcatopts int -- bit map off all options stored in sysdatqabases.category
-- that can be set by sp_dboption.
declare *exec_stmt nvarchar(max)
declare *fulloptname varchar(35)
declare *alt_optname varchar(50)
declare *alt_optvalue varchar(30)
declare *optnameIn varchar(35)


select *optnameIn = *optname
,*optname = LOWER (*optname collate Latin1_General_CI_AS)
-- If no *dbname given, just list the possible dboptions.
-- Only certain status bits may be set or cleared by sp_dboption.
-- Get bitmap of all options that can be set by sp_dboption.
select *allstatopts=number from master.dbo.spt_values where type = 'D'
and name = 'ALL SETTABLE OPTIONS'
select *allcatopts=number from master.dbo.spt_values where type = 'DC'
and name = 'ALL SETTABLE OPTIONS'
select *alloptopts=number from master.dbo.spt_values where type = 'D2'
and name = 'ALL SETTABLE OPTIONS'
if *dbname is null
begin
select 'Settable database options:' = name
from master.dbo.spt_values
where (type = 'D'
and number & *allstatopts <> 0
and number not in (0,*allstatopts)) -- Eliminate non-option entries
or (type = 'DC'
and number & *allcatopts <> 0
and number not in (0,*allcatopts))
or (type = 'D2'
and number & *alloptopts <> 0
and number not in (0,*alloptopts))
order by name
return (0)
end
-- Verify the database name and get info
select *dbid = dbid
from master.dbo.sysdatabases
where name = *dbname
-- If *dbname not found, say so and list the databases.
if *dbid is null
begin
raiserror(15010,-1,-1,*dbname)
print ' '
select 'Available databases:' = name
from master.dbo.sysdatabases
return (1)
end
-- If no option was supplied, display current settings.
if *optname is null
begin
select 'The following options are set:' = v.name
from master.dbo.spt_values v, master.dbo.sysdatabases d
where d.name=*dbname
and ((number & *allstatopts <> 0
and number not in (-1,*allstatopts)
and v.type = 'D'
and (v.number & d.status)=v.number)
or (number & *allcatopts <> 0
and number not in (-1,*allcatopts)
and v.type = 'DC'
and d.category & v.number <> 0)
or (number & *alloptopts <> 0
and number not in (-1,*alloptopts)
and v.type = 'D2'
and d.status2 & v.number <> 0))
return(0)
end
if *optvalue is not null and lower(*optvalue) not in ('true', 'false', 'on', 'off')
begin
raiserror(15241,-1,-1)
return (1)
end
-- Use *optname and try to find the right option.
-- If there isn't just one, print appropriate diagnostics and return.
select *optcount = count(*) ,*fulloptname = min(name)
from master.dbo.spt_values
where lower(name collate Latin1_General_CI_AS) like '%' + *optname + '%'
and ((type = 'D'
and number & *allstatopts <> 0
and number not in (-1,*allstatopts))
or (type = 'DC'
and number & *allcatopts <> 0
and number not in (-1,*allcatopts))
or (type = 'D2'
and number & *alloptopts <> 0
and number not in (-1,*alloptopts)))
-- If no option, show the user what the options are.
if *optcount = 0
begin
raiserror(15011,-1,-1,*optnameIn)
print ' '
select 'Settable database options:' = name
from master.dbo.spt_values
where (type = 'D'
and number & *allstatopts <> 0
and number not in (-1,*allstatopts)) -- Eliminate non-option entries
or (type = 'DC'
and number & *allcatopts <> 0
and number not in (-1,*allcatopts))
or (type = 'D2'
and number & *alloptopts <> 0
and number not in (-1,*alloptopts))
order by name
return (1)
end
-- If more than one option like *optname, show the duplicates and return.
if *optcount > 1
begin
raiserror(15242,-1,-1,*optnameIn)
print ' '
select duplicate_options = name
from master.dbo.spt_values
where lower(name collate Latin1_General_CI_AS) like '%' + *optname + '%'
and ((type = 'D'
and number & *allstatopts <> 0
and number not in (-1,*allstatopts))
or (type = 'DC'
and number & *allcatopts <> 0
and number not in (-1,*allcatopts))
or (type = 'D2'
and number & *alloptopts <> 0
and number not in (-1,*alloptopts))
)
return (1)
end
-- Just want to see current setting of specified option.
if *optvalue is null
begin
select OptionName = v.name,
CurrentSetting = (case
when ( ((v.number & d.status) = v.number
and v.type = 'D')
or (d.category & v.number <> 0
and v.type = 'DC')
or (d.status2 & v.number <> 0
and v.type = 'D2')
)
then 'ON'
when not
( ((v.number & d.status) = v.number
and v.type = 'D')
or (d.category & v.number <> 0
and v.type = 'DC')
or (d.status2 & v.number <> 0
and v.type = 'D2')
)
then 'OFF'
end)
from master.dbo.spt_values v, master.dbo.sysdatabases d
where d.name=*dbname
and ((v.number & *allstatopts <> 0
and v.number not in (-1,*allstatopts) -- Eliminate non-option entries
and v.type = 'D')
or (v.number & *allcatopts <> 0
and v.number not in (-1,*allcatopts) -- Eliminate non-option entries
and v.type = 'DC')
or (v.number & *alloptopts <> 0
and v.number not in (-1,*alloptopts) -- Eliminate non-option entries
and v.type = 'D2')
)
and lower(v.name) = lower(*fulloptname)
return (0)
end
select *catvalue = 0
select *catvalue = number
from master.dbo.spt_values
where lower(name) = lower(*fulloptname)
and type = 'DC'
-- if setting replication option, call sp_replicationdboption directly
if (*catvalue <> 0)
begin
select *alt_optvalue = (case lower(*optvalue)
when 'true' then 'true'
when 'on' then 'true'
else 'false'
end)
select *alt_optname = (case *catvalue
when 1 then 'publish'
when 2 then 'subscribe'
when 4 then 'merge publish'
else quotename(*fulloptname, '''')
end)
select *exec_stmt = quotename(*dbname, '[') + '.dbo.sp_replicationdboption'
EXEC *exec_stmt *dbname, *alt_optname, *alt_optvalue
return (0)
end


-- call Alter Database to set options
-- set option value in alter database
select *alt_optvalue = (case lower(*optvalue)
when 'true' then 'ON'
when 'on' then 'ON'
else 'OFF'
end)
-- set option name in alter database
select *fulloptname = lower(*fulloptname)
select *alt_optname = (case *fulloptname
when 'auto create statistics' then 'AUTO_CREATE_STATISTICS'
when 'auto update statistics' then 'AUTO_UPDATE_STATISTICS'
when 'autoclose' then 'AUTO_CLOSE'
when 'autoshrink' then 'AUTO_SHRINK'
when 'ansi padding' then 'ANSI_PADDING'
when 'arithabort' then 'ARITHABORT'
when 'numeric roundabort' then 'NUMERIC_ROUNDABORT'
when 'ansi null default' then 'ANSI_NULL_DEFAULT'
when 'ansi nulls' then 'ANSI_NULLS'
when 'ansi warnings' then 'ANSI_WARNINGS'
when 'concat null yields null' then 'CONCAT_NULL_YIELDS_NULL'
when 'cursor close on commit' then 'CURSOR_CLOSE_ON_COMMIT'
when 'torn page detection' then 'TORN_PAGE_DETECTION'
when 'quoted identifier' then 'QUOTED_IDENTIFIER'
when 'recursive triggers' then 'RECURSIVE_TRIGGERS'
when 'default to local cursor' then 'CURSOR_DEFAULT'
when 'offline' then (case *alt_optvalue when 'ON' then 'OFFLINE' else 'ONLINE' end)
when 'read only' then (case *alt_optvalue when 'ON' then 'READ_ONLY' else 'READ_WRITE' end)
when 'dbo use only' then (case *alt_optvalue when 'ON' then 'RESTRICTED_USER' else 'MULTI_USER' end)
when 'single user' then (case *alt_optvalue when 'ON' then 'SINGLE_USER' else 'MULTI_USER' end)
when 'select into/bulkcopy' then 'RECOVERY'
when 'trunc. log on chkpt.' then 'RECOVERY'
when 'db chaining' then 'DB_CHAINING'
else *alt_optname
end)
if *fulloptname = 'dbo use only'
begin
if *alt_optvalue = 'ON'
begin
if databaseproperty(*dbname, 'IsSingleUser') = 1
begin
raiserror(5066,-1,-1);
return (1)
end
end
else
begin
if databaseproperty(*dbname, 'IsDBOOnly') = 0
return (0)
end
end
if *fulloptname = 'single user'
begin
if *alt_optvalue = 'ON'
begin
if databaseproperty(*dbname, 'ISDBOOnly') = 1
begin
raiserror(5066,-1,-1);
return (1)
end
end
else
begin
if databaseproperty(*dbname, 'IsSingleUser') = 0
return (0)
end
end
select *alt_optvalue = (case *fulloptname
when 'default to local cursor' then (case *alt_optvalue when 'ON' then 'LOCAL' else 'GLOBAL' end)
when 'offline' then ''
when 'read only' then ''
when 'dbo use only' then ''
when 'single user' then ''
else *alt_optvalue
end)
if lower(*fulloptname) = 'select into/bulkcopy'
begin
if *alt_optvalue = 'ON'
begin
if databaseproperty(*dbname, 'IsTrunclog') = 1
select *alt_optvalue = 'RECMODEL_70BACKCOMP'
else
select *alt_optvalue = 'BULK_LOGGED'
end
else
begin
if databaseproperty(*dbname, 'IsTrunclog') = 1
select *alt_optvalue = 'SIMPLE'
else
select *alt_optvalue = 'FULL'
end
end
if lower(*fulloptname) = 'trunc. log on chkpt.'
begin
if *alt_optvalue = 'ON'
begin
if databaseproperty(*dbname, 'IsBulkCopy') = 1
select *alt_optvalue = 'RECMODEL_70BACKCOMP'
else
select *alt_optvalue = 'SIMPLE'
end
else
begin
if databaseproperty(*dbname, 'IsBulkCopy') = 1
select *alt_optvalue = 'BULK_LOGGED'
else
select *alt_optvalue = 'FULL'
end
end
-- construct the ALTER DATABASE command string
select *exec_stmt = 'ALTER DATABASE ' + quotename(*dbname) + ' SET ' + *alt_optname + ' ' + *alt_optvalue + ' WITH NO_WAIT'
EXEC (*exec_stmt)
if **error <> 0
begin
raiserror(15627,-1,-1)
return (1)
end
return (0) -- sp_dboption
GO
920. Berckk 30.06.20 11:19 Сейчас в теме
(918) Кто будет использовать, проверьте кодировку. Скорее всего надо Latin1_General_CI_AS заменить на Cyrillic_General_CI_AS.
47. Dolly_EV 267 02.04.11 08:25 Сейчас в теме
Несомненный +!
Помню, года 1.5 назад через танцы с бубном и интернеты птица по имени server2008R2+SQL2008+7.7 у меня взлетела, да..
Так что плюс несомненный и огромный респект, за систематизацию всех проблемных моментов "в одном флаконе"!
...Но вот только кроме "использования современного ПО" никаких плюсов я для этой "птицы" тогда не увидел, поэтому вопрос в (34) остается открытым: "преимущества в использовании формата SQL 2005/8?"
37. lordxxl 30.03.11 18:42 Сейчас в теме
У меня при обмене РБД говорит что "порядок сортировки, установленный для базы данных, отличается от системного" хотя в языковых настройках везде русский, файлик отмены проверки в каталоге иб(OrdNoChk.prm)не помогает. Кто-нибудь сталкивался?

система: Server 2008
sql: MS SQL 2008
38. lordxxl 30.03.11 18:49 Сейчас в теме
PS: в настройках БД стоит порядок сортировки Cyrillic_General_CI_AS
42. 1yh1 31.03.11 12:20 Сейчас в теме
State 42000, native 1018, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'HOLDLOCK'. If this is intended as a part of a table hint, A WITH keyword and parenthesis are now required. See SQL Server Books Online for proper syntax.

После
exec _1sp__1SJOURN_TLockX

Если try except нету, то:
Невосстановимая ошибка базы данных!
и вылет, причина, я думаю, проста в Stored Procedures нет with
43. spock 592 31.03.11 17:42 Сейчас в теме
(42)да, проблема в хранимой процедуре. Нужно вызвать реструктуризацию, чтобы пересоздать ХП. Измени что-нибудь в метаданных (чтобы появились две звездочки) и сохрани конфу. ХП будут пересозданы с учетом нового синтаксиса.
45. dumsik 23 01.04.11 16:57 Сейчас в теме
(43) Мне кажется от родного режима sql2005/2008 больше проблем чем пользы. Может было проше решить только специфичные проблемы связки 1с и sql2005/2008 а все базы держать в режиме совместимости (80). Под специфичными проблемами я понимаю (невозможность открытия базы в монопольном режиме, проблемы с odbc, проблемы с определением версии SQL).
46. spock 592 01.04.11 19:59 Сейчас в теме
(45)теперь есть возможность выбора - демократия.
48. dumsik 23 02.04.11 12:06 Сейчас в теме
(46) а как поведет себя прокси dll если я укажу в sql 2005 у базы режим совместимости 80 ?
49. spock 592 02.04.11 15:31 Сейчас в теме
(48)так же, как и в режиме совместимости выше.
53. dumsik 23 03.04.11 13:08 Сейчас в теме
(49) во если бы прокси dll понимала что база в режиме 80 и запросы не правила тогда.
44. shraik 01.04.11 08:13 Сейчас в теме
Не срабатывает определение нарушения последовательности

релиз 27
конфигурация Торговля 7.7
сервер SQL2005(9.00.3080.00)
база sql с такими параметрами
compat: SQL Server 2005(90)
collation: Cyrillic_General_CI_AS
создавалась сначала пустышка в студио, затем заливалась через конфигуратор.

как я понял в глобальнике не отрабатывает "глПроверкаАктуальностиОтчета"
вот это условие всегда возвращает "1"
Если ВыбПоследовательность.Проверить(ПозицияОтчета)=0 Тогда

вот. всё что знал сказал.
Куда копать ?
P.S.
хотя вроде ловит если изменения произошли не в предпоследнем документе.
текст SQL запроса сравнил, он получается одинаковый
50. leshik 33 02.04.11 21:52 Сейчас в теме
Вот такую ошибку выдает при попытке сохранить проведенный документ в монопольном режиме:
RGHost
51. spock 592 03.04.11 08:14 Сейчас в теме
(50)реструктуризацию вызывал? Если да, то давай текст запроса, пойманный профайлером.
52. leshik 33 03.04.11 10:49 Сейчас в теме
хм... с текстом запроса все сложнее - там експресс :-(
54. leshik 33 03.04.11 19:24 Сейчас в теме
Вот на этом запросе сваливается:

exec _1sp__1SJOURN_TLockX
В монопольном режиме отрабатывает нормально
55. spock 592 03.04.11 19:56 Сейчас в теме
(54)не было реструктуризации?
56. leshik 33 03.04.11 22:31 Сейчас в теме
(55) скорее всего нет - сделать надо?
58. spock 592 04.04.11 17:02 Сейчас в теме
(56)так-то да.
(57)реструктуризация и обмен не одно и тоже.
57. leshik 33 03.04.11 22:32 Сейчас в теме
Была загрузка базы УРБД из DBF формата в SQL. Вот что было.
59. kudenzov 76 04.04.11 23:35 Сейчас в теме
Огромное спасибо за Вашу работу!
Завтра начнем тестирование

P/S Блокировку входа при вводе пароля бы еще выключить в 1Cv7.LCK , сейчас патчим bkend
60. kudenzov 76 05.04.11 10:59 Сейчас в теме
клиент XP, slq 2008, режим совместимости 2008

При загрузке базы из zip (выгруженного из DBF):

Incorrect syntax near 'INDEX'. If this is intended as a part of a table hint, A WITH keyword and parenthesis are now required. See SQL Server Books Online for proper syntax.

ENTRY(INDEX=ACCDTID)

INSERT INTO _1SACCSEL
SELECT ACCID,DOCID,DATE_TIME_DOCID,NUMBER,CORNO,MAX(DT),MAX(KT) FROM
(
   SELECT ACCID=TMP.MAINID,ENTRY.DOCID,ENTRY.DATE_TIME_DOCID,ENTRY.NUMBER,ENTRY.CORNO,DT='*',KT=' '
   FROM #TMPACCSTBL TMP,_1SENTRY ENTRY(INDEX=ACCDTID)
   WHERE ENTRY.ACCDTID=TMP.SUBID and ENTRY.DATE_TIME_DOCID>'20040701     0     0   ' AND ENTRY.DATE_TIME_DOCID<'20040801     0     0   '
   UNION ALL
   SELECT ACCID=TMP.MAINID,ENTRY.DOCID,ENTRY.DATE_TIME_DOCID,ENTRY.NUMBER,ENTRY.CORNO,DT=' ',KT='*'
   FROM #TMPACCSTBL TMP,_1SENTRY ENTRY(INDEX=ACCKTID
   WHERE ENTRY.ACCKTID=TMP.SUBID and ENTRY.DATE_TIME_DOCID>'20040701     0     0   ' AND ENTRY.DATE_TIME_DOCID<'20040801     0     0   '
) AS ACCSEL
GROUP BY ACCID,DOCID,DATE_TIME_DOCID,NUMBER,CORNO
Показать
61. spock 592 05.04.11 16:40 Сейчас в теме
62. dungeonkeeper 10 06.04.11 08:35 Сейчас в теме
Пытались перетащить базу на sql 2008 сервер, но вылетает ошибка

Создал пустую базу (в режиме 2008 (100)), назначил пользователя владельцем, в конфигураторе прописал настройки ...
в общем все вроде правильно.
Кстати, предварительно пытался перетащить туже базу только без данных (пустую конфигурацию). Все проходило без проблем.

Сам я в sql особо не копенгаген.
Может подскажите где грабли?

Еще вспомнил...
До этого корячился в преславутой BkEnd.dll
И подменой ODBC через реестр.
Как теперь откатить подмену?

делал вот по этой инструкции:
1. Папку 1Cv7_SQLDriver скопировать в корень диска C
2. Импортировать в реестр файл 1C_SQL_ODBC.reg
3. с помощью команды sdbinst.exe [путь к файлу] 1sfix.sdb установить исправление.
4. 1с должна запуститься

Может ошибка с этим связана?
63. spock 592 06.04.11 18:12 Сейчас в теме
(62)вчера вечером выложил исправленный вариант - этого не должно быть уже.
64. kudenzov 76 06.04.11 22:37 Сейчас в теме
(63) Подтверждаю, zip грузится
65. dungeonkeeper 10 07.04.11 19:22 Сейчас в теме
ВоПщем удалил 1Cv7_SQLDriver, так же отменил исправление "sdbinst.exe [путь к файлу] 1sfix.sdb"
Все загрузилось, сейчас тестируем.

Пыс.Пыс.
Я только не понял , что за рекомендации:
"вызывать реструктуризацию, если база данных до этого использовалась с родной BkEnd.dll (в хранимых процедурах есть код, который не проходит по ограничениям SQL2005/2008);"
Как это сделать?
66. spock 592 07.04.11 19:40 Сейчас в теме
(65)внести любые изменения в метаданные (отсортировать, поставить-снять галку, например) и сохранить.
67. dumsik 23 08.04.11 17:02 Сейчас в теме
Хотелось бы поделиться некоторыми мыслями касательно данной прокси dll. Несомненно, автор данного решения молодец, он предложил нам еще один очень хороший способ запуска 1с 7.7 на современном ПО. Но представим следующею ситуацию: После месячного или более тестирования я скрестя пальцы внедрил эту технологию на рабочих базах и все вроде хорошо работает и в друг 1с падает на очередном запросе который не корректно парсится прокси dll. Я честно пишу spock'у но ответа нет (долго нет), а база не работает... Поэтому ребята хорошо подумайте перед внедрением этой технологии, уж сильно глубоко капнул spock в переделке 1c под sql 2005/2008.
Как мне кажется такие разработки должны публиковаться с исходными кодами чтобы силами сообщества можно было достаточно оперативно подправлять найденные баги.
68. spock 592 09.04.11 09:33 Сейчас в теме
(67)так, а что мне ответить еще? Дублировать функционал я не собираюсь пока - я об этом сразу сказал, добавить нечего. Про проблемный запрос ничего не видел :|
70. dumsik 23 09.04.11 16:40 Сейчас в теме
(68) Не было пока проблемного запроса, я просто описал возможную ситуацию. Основная мысль в том, что рано или поздно у Вас не будет желания/времени на поддержку этого решения, и тогда такая ситуация вполне возможна. Я в комментарии (53) писал, что оптимальным с моей точки зрения было анализировать режим совместимости базы и строить логику работы dll исходя из этого, т.к. если база в режиме совместимости 80 запросы бы не изменялись dll и вероятность падения 1с снизилась бы на порядок, тем более у многих в конфах куча прямых запросов которые переписывать (в случае их несовместимости с sql2005/2008) не очень хочется.
71. spock 592 09.04.11 19:13 Сейчас в теме
(70)вот когда не будет желания, то сразу выложу исходники.

если база в режиме совместимости 80 запросы бы не изменялись dll

ну тогда как поступаем с таким, например, DUMP TRANSACTION %s WITH TRUNCATE_ONLY на sql2008r2?

куча прямых запросов которые переписывать ... не очень хочется.

так-то я сам в этом не заинтересован.
73. dumsik 23 10.04.11 05:19 Сейчас в теме
(71)
spock пишет:
ну тогда как поступаем с таким, например, DUMP TRANSACTION %s WITH TRUNCATE_ONLY на sql2008r2?


А разве режим совместимости -80 не подразумевает что такие запросы будут работать корректно ?
74. spock 592 10.04.11 08:22 Сейчас в теме
75. dumsik 23 12.04.11 14:42 Сейчас в теме
(74) да согласен DUMP TRANSACTION %s WITH TRUNCATE_ONLY на sql2008r2 не поддерживается (http://msdn.microsoft.com/en-us/library/ms144262.aspx). Но что мешает отслеживать только такие проблемные запросы? Поправь меня если ошибаюсь но ведь если база в режиме 80 то ошибки как в посте (62) на sql2008r2 не будет ?
69. spock 592 09.04.11 09:35 Сейчас в теме
+68 Кстати, хорошее замечание, что нужно хорошо подумать перед внедрением.
maxpiter; +1 Ответить
578. mad_maksim 91 10.01.13 11:20 Сейчас в теме
Самописная конфигурация, отчет с диаграммой выдает такую ошибку:
Диаграмма.КоличествоТочек(КолвоТочек);
{Отчет.СтатистикаРаботы.Форма.Модуль(69)}: Значение не представляет агрегатный объект (КоличествоТочек)
Win2008R2+SQL2005
579. yuraos 966 10.01.13 17:34 Сейчас в теме
(578) mad_maksim,
это шо после установок примочек из данной работы появилось?
если нет - то ето малость не по теме ;) ...
580. mad_maksim 91 11.01.13 07:54 Сейчас в теме
(579) yuraos, Да, после установки. Причем даже в файловом варинте воспроизводится
581. spock 592 11.01.13 17:07 Сейчас в теме
(580) mad_maksim, сделай пожта тестовый пример, который я запущу и увижу эту проблему.
583. mad_maksim 91 11.01.13 19:26 Сейчас в теме
(581) Прошу прощения за беспокойство, вопрос решился советом из следующего поста (запуск в режиме совместимости)
Спасибо за разработку!
599. MadDAD 142 13.02.13 10:25 Сейчас в теме
(581) во первых огромное спасибо за это решение!
Во вторых есть такая хотелка:

Установлен MS SQL Server 2008 R2.
Если база находится в режиме совместимости c 2000 SQL, то все работает отлично.

проблема начинается при переключении базы в режим совместимости 2008 (100)

При выполнении из 1С такого запроса (из внешней компоненты. Компонента чужая, доработать возможности нет)

' DECLARE @tmp int
SELECT @tmp=1 from _1SBKTTL (tablockx, holdlock) where 0=1'

SQLExecDirect() перехватывается Вашей библиотекой как задумано. Текст запроса передается в BkEndUtls.ProccessQueryText(), но никак не изменятся. Т.е. как я понимаю должен добавиться "WITH" перед хинтами блокировки.

Если можно это поправить - было бы просто чудесно.
600. spock 592 13.02.13 12:18 Сейчас в теме
(599) MadDAD, а точно это нужно?
Я изначально писал код как раз из расчета, что все подряд буду исправлять. Но, все-таки, мне кажется, что не нужно подменять запросы приходящие не из самой 1с.
601. MadDAD 142 13.02.13 13:11 Сейчас в теме
(600) думаю нужно. Потому что получается функционал однобокий :) Сама платформа может работать в родном режиме 2008 а компоненты не могут... Я понимаю, что по хорошему - нужно компоненту переделывать но тут вопрос легальности.
Вариант конечно - прикрутить еще одну компоненту - которая будет частично дублировать функционал Вашей библиотеки в части перехвата запросов и их трансляции, но у Вас это уже реализовано.
582. andrewks 1282 11.01.13 17:47 Сейчас в теме
(578)(581) сдаётся мне, что проблема с v7chart.dll, а не из-за "секретного" релиза.
возможно, что не зарегена эта длл-ка, или она работает некорректно. например, v7plus.dll на win7 x64 начинает нормально грузиться только после простановке в свойствах ярлыка 1С совместимости с WinXP
584. mad_maksim 91 11.01.13 19:26 Сейчас в теме
(582) andrewks, Спасибо за совет, режим совместимости помог.
72. dungeonkeeper 10 09.04.11 21:08 Сейчас в теме
dumsik пишет:

Хотелось бы ...

У вас такая ситуация уже возникла или это только фантазии?
Мы сейчас находимся на стадии внедрения этого "Секретного релиза".
Пока тестируем. Есть проблемы, но пока не могу сказать с чем это связано. То ли это косяки SQL, толи 1С.
При выполнении регламентных работ почему-то на SQL версии встают кривые проводки. Хотя то же самое на dbf отрабатывает правильно.

У нас конфигурация написаная с самого начала (с Глобального модуля) под наше предприятие. Размер MD файла около 30mb. База за год вырастает до 5 Гб. Все бы хорошо, но размер одной из dbf таблиц подкатывает к 2Гб, а это, как вы знаете каюк!
По этому кровь из носу надо перетаскивать всю базу на SQL. Выбора у нас нет.
Переходить на 8, тоже не представляется возможным. Слишком долго и затратно.
76. Dolly_EV 267 13.04.11 13:10 Сейчас в теме
(72)
dungeonkeeper пишет:
По этому кровь из носу надо перетаскивать всю базу на SQL. Выбора у нас нет.

Выбор у вас есть! Вот эта штука http://infostart.ru/public/15211/ два года назад спасла меня в аналогичной ситуации (не было возможности поднять SQL в 7-ми филиалах за 2 дня)
77. dungeonkeeper 10 14.04.11 09:41 Сейчас в теме
Dolly_EV пишет:

(72)

Можете объяснить как-то по подробнее, только наверное не здесь.
Оставьте свое сообщение

См. также

Консоль прямых запросов для 1С++ (1С 7.7) Промо

Консоль запросов v7.7 1cv7.md Абонемент ($m)

Консоль прямых запросов для 1С 7.7, под компоненту 1Сpp.dll. Особенности: 1. Печать результата запроса. 2. Сохранение результата в файл в виде внутреннего представления таблицы значений 3. Формирование запроса как для SQL, так и для DBF вариантов, с разными вариантами драйверов. 4. Сортировка по произвольной колонке результата таблицы

1 стартмани

25.04.2012    32381    46    Aristo_    9    

Меняем кодировку файла на UTF-8 (для СЗВ-СТАЖ)

Инструментарий разработчика v77::Расчет 1С7:ЗиК Абонемент ($m)

В ЗиК 7.7 при выгрузке СЗВ-СТАЖ для перевода кодировки файла в UTF-8 используется COM-объект ADODB.Stream. У клиентов при работе с ним 1С полностью вылетала. Здесь приведён скрипт изменения кодировки файла на PowerShell и способ изменения выгрузки в ЗиК 7.7.

1 стартмани

01.02.2018    11692    4    sashocq    3    

Сравнение конфигураций на платформе 1Сv7.7

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Обработка позволяет сравнивать структуру полей разных баз данных на платформе 1Сv7.7, что, в случае объединения конфигураций, поможет избежать разрушения базы.

1 стартмани

12.11.2016    9519    11    citicat    7    

Подсветка кода 1С в Visual Studio (2012, 2013)

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Для тех, кто использует GСomp и TFS в качестве системы контроля версий, не очень удобно сравнивать модули без подсветки кода. Этот плагин призван исправить несправедливость.

1 стартмани

06.06.2016    12639    10    MadDAD    6    

Для платформы 7.7. Отчёт по видам документов, двигавших регистр за период

Статистика базы данных Инструментарий разработчика v7.7 1cv7.md Россия Абонемент ($m)

Отчёт по видам документов, двигавших регистр за период.

1 стартмани

31.03.2016    11574    0    vendim    1    

Технологическая проверка кода конфигурации (7.7)

Инструментарий разработчика Практика программирования v7.7 1cv7.md Абонемент ($m)

1С 7.7 не имеет практически никаких средств, предназначенных для контроля правильности кода. В синтаксически правильном, с точки зрения 1С, коде можно, например, определить переменную НомерДок в модуле документа. Эта обработка может помочь найти некоторые "плохие решения" в коде.

1 стартмани

03.09.2015    9259    5    vcv    6    

Структура модуля с выводом комментариев

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Отчет показывает структуру программного модуля на языке 1С:Предприятие 7.7.

1 стартмани

06.08.2015    10525    0    корум    1    

Консоль (7.7) Промо

Инструментарий разработчика v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Предлагаю вашему вниманию консоль для программирования в среде 1С. Теперь для выполнения коротких разовых задач необязательно заходить в конфигуратор. 1.Запускаешь консоль 2.Пишешь свой код 3.Нажимаешь Выполнить. Требование: 1С++ (со встроеным FormEx) должна быть уже загружена 1sci.dll грузится ПриОткрытии() В архиве на всякий случай выложил все необходимое: 1cpp.dll (от 5 декабря 2008 г., 1:30:26) 1sci.dll (от 5 августа 2008 г., 13:32:42) Ссылки: 1sci.dll http://infostart.ru/projects/4443/ 1cpp.dll http://www.1cpp.ru/ Огромное спасибо steban http://infostart.ru/profile/1746/

1 стартмани

24.06.2009    20424    8    mdbm    26    

Быстрое попроцедурное сравнение модулей конфигураций 7.7

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Утилита для быстрого формирования отчета о различиях в конфигурациях 7.7

1 стартмани

18.06.2015    10787    5    MadDAD    3    

Компоновщик прямых запросов 7.7 (Выборка документов)

Инструментарий разработчика v7.7 openconf 1cv7.md Абонемент ($m)

Компоновщик прямых запросов позволяет делать выборки документов из SQL базы данных 1C 7.7 любой конфигурации

1 стартмани

18.06.2015    10077    0    942644    3    

Консоль прямых запросов для 1С++ (1С 7.7) + ToySQL

Консоль запросов v7.7 1cv7.md Абонемент ($m)

Консоль прямых запросов для 1С 7.7, под компоненту 1Сpp.dll. Особенности: 1. Печать результата запроса. 2. Сохранение результата в файл в виде внутреннего представления таблицы значений 3. Формирование запроса как для SQL, так и для DBF вариантов, с разными вариантами драйверов. 4. Сортировка по произвольной колонке результата таблицы Консоль подпилена для работы с ToySQL

1 стартмани

04.06.2015    11282    16    qeos    5    

[Разработчику] Любая таблица значений в OLAP Промо

Инструментарий разработчика Универсальные обработки Практика программирования v7.7 1cv7.md Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    27006    17    venger    7    

Подсветка синтаксиса 1C (в том числе языка запросов) в EmEditor

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Данная доработка возможностей EmEditor в первую очередь будет очень интересна людям, которые за долгие годы программирования привыкли к этому редактору, но вынуждены были использовать другие редакторы при работе с 1С, из-за отсутствия соответствующей подсветки текста. Теперь в этом нет необходимости, т.к. представляю вашему вниманию подсветку текста и языка запросов для EmEditor.

1 стартмани

17.05.2015    8899    3    Mopsik    2    

Консоль запросов

Консоль запросов v7.7 1cv7.md Абонемент ($m)

Консоль запросов к базе SQL, не требующая внешних компонент

1 стартмани

29.04.2015    12712    25    Gvozdod    8    

Написание SQL запросов с использованием метапарсера 1с++ прямо из 1С предприятия (пользовательский режим)

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Обработка для написания запросов. Большая часть взята отсюда http://www.1cpp.ru/forum/YaBB.pl?num=1157967835/all

1 стартмани

06.03.2015    120685    1    born85    6    

Сравнение и объединение диалогов форм МД файла Промо

Инструментарий разработчика Работа с интерфейсом v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

Обработка анализирует диалоги форм двух мдшников и показывает изменения в них в удобоваримом виде. Авmop: Peуmoв Дмumpuй, e-mail: dimoff66@mail.ru, icq: 177067865 Автору огромное спасибо!

1 стартмани

09.09.2008    25092    20    WiseSnake    27    

Формирование EAN-13 при помощи шрифта EANGNIVC.ttf Code128 шрифтом Barcode.ttf

Инструментарий разработчика v7.7 1cv8.cf Абонемент ($m)

Формирование EAN-13 шрифтом Eangnivc.ttf; Формирование Code128 шрифтом Barcode.ttf; Кнопка Рестарт; Генератор случайных чисел;

1 стартмани

08.12.2014    14025    19    EdGreen    1    

Класс для формирования штрих-кодов при помощи свободной библиотеки Zint

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Библиотека Zint позволяет формировать штрих-коды различных стандартов (более 100) в виде .png, .eps или .svg Данный класс предназначен для того, чтобы использовать данную библиотеку под 1С 7.7

1 стартмани

02.10.2014    16325    24    Amel2010    10    

Перевод десятичного числа в HEX, BIN, OCT, _IdToStr и другие системы

Инструментарий разработчика Практика программирования Универсальные функции v7.7 1cv7.md Абонемент ($m)

Два алгоритма перевода десятичного числа в другую систему исчисления от 2 до 36 только средствами 1С (без ВК)

1 стартмани

05.06.2014    13118    7    kos    3    

Контроль изменений в справочниках (сверка с архивом) Промо

Инструментарий разработчика v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Проверяет справочник на наличие изменений в коде и/или наименовании сверясь с "архивной копией"

1 стартмани

07.10.2008    17703    0    alexk-is    6    

Шаблон внешней компоненты для Lazarus (FreePascal)

Инструментарий разработчика Разработка внешних компонент v7.7 v8 Абонемент ($m)

Шаблон внешней компоненты COM для Lazarus (FreePascal)

1 стартмани

16.05.2014    15700    18    v77    5    

Ленивые запросы SQL (1С++) для 7.7 на русском

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Так сложилось, что приходится часто писать прямые запросы для 1С 7.7 используя 1С++. И так сложилось, что я столкнулся с регулярными выражениями, и, как водится, был ошеломлен. Пришлось написать несколько процедур для того, чтобы запросы было составлять удобнее, дабы переключение раскладки языков не сломать :) Получилось в итоге так, что раскладку переключать вообще не требуется. Запрос набирается просто в русской раскладке :) Почти как в 1С 8.Х! Операторы и названия таблиц, которые я пропустил, просто добавляются в функции запросПравилаЗаменыИменПолей, запросПравилаЗаменыИменТаблиц, запросПравилаЗаменыОператоров. Строки, заключенные в кавычки, обрабатываются корректно.

1 стартмани

12.03.2014    10845    1    mismak    3    

Зачеркнутый шрифт Palatino Linotype - 1C 7, 8, и др.

Инструментарий разработчика v7.7 v8 Россия Абонемент ($m)

Шрифт с зачеркнутыми латинскими, кириллическими символами, а также цифрами.

1 стартмани

21.02.2014    18793    7    etmarket    2    

Подсветка синтаксиса 1Cv7.7 в Notepad++

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

1. Открываем Notepad++. 2. В меню «Синтаксис» выбираем параметр «Задать свой язык ...» 3. В появившемся окне выбираем «Импорт ...» и выбираем Файл шаблона.

1 стартмани

22.01.2014    9190    2    leov-001    4    

Простенький diff-ер для mxl-файлов

Инструментарий разработчика openconf 1cv7.md Абонемент ($m)

Надоело перед коммитом в SVN ручками сравнивать изменения в mxl-файлах? Тогда мы идем к вам!

1 стартмани

09.12.2013    11101    0    SatanClaws    6    

Tray Informer

Инструментарий разработчика Разработка внешних компонент Работа с интерфейсом v7.7 v8 Россия Абонемент ($m)

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    25292    6    O-Planet    78    

Отчет "Дерево справочника"

Инструментарий разработчика Практика программирования v7.7 1cv7.md Абонемент ($m)

Зарядка для ума: вывод сворачиваемого дерева справочника в 1С v.7.7.

1 стартмани

20.07.2013    12278    1    uus    12    

Вывод таблицы ASCII

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Вывод таблицы символов ASCII для любого шрифта, установленного в системе.

1 стартмани

12.07.2013    17471    0    uus    3    

1С7: Галерея изображений для любого справочника

Инструментарий разработчика Универсальные обработки Работа с интерфейсом v7.7 1cv7.md Абонемент ($m)

В публикации представлена конфигурация "Галерея изображений". В конфигурации показан метод связки любого элемента любого справочника с изображением, хранящемся в внешнем файле в галерее ИБ. - Хранение изображений в структуре каталогов, сходной с иерархией элемента; - Использование Active-x броузера для отображения связанного рисунка; Используемые компоненты: 1SQLite, 1CPP, Formex. Используемые классы: УправлениеФормой.Привязки (из набора классов http://www.1cpp.ru/forum/YaBB.pl?num=1273512019)

1 стартмани

10.07.2013    18972    1    unichkin    11    

v7.7 1CDialogControls: Инструмент в помощь разработчику на 7.7.

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    12144    2    MarSeN    14    

Быстрый просмотр данных из переменных типа ТаблицаЗначений, СписокЗначений, ИндексированнаяТаблица, Запрос

Инструментарий разработчика v7.7 1cv7.md Россия Абонемент ($m)

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

1 стартмани

13.02.2013    6057    1    aaiivanov    3    

Групмейкер для таблицы значений.

Инструментарий разработчика Практика программирования Универсальные обработки v7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

Универсальная функция и обработка для свертки и группировки таблицы значений. Очень простой способ подвести итоги по призвольным группам в произвольном порядке любой таблицы значений для быстрого вывода на печать нужной пользователю последовательности и детализации группировок.

1 стартмани

20.11.2012    23147    4    dusha0020    15    

Редактор дат периода

Инструментарий разработчика Работа с интерфейсом openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Для того чтобы обозначить (выбрать) период приходиться пользоваться встроенными возможностями 1С или добавлять в диалог дополнительные возможности, кнопочки, описывать в модулях процедуры и функции... С помощью данной обработки Вы можете интегрировать удобства выбора дат периода посредством одной команды-вызова!

1 стартмани

01.08.2012    8290    0    6arop    1    

Доработанный универсальный подбор объектов UChoice

Универсальные обработки Сервисные утилиты Инструментарий разработчика v7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

Основные изменения - поддержка выражений на встроенном языке при замене значений, обработка табличных частей документов.

2 стартмани

27.04.2012    19052    29    wenzor    3    

Панель функций 7.7

Универсальные обработки Инструментарий разработчика Поиск данных v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

Универсальная панель функций для 1С 7.7 (SQL). На замену меню Операции.

1 стартмани

05.04.2012    15338    0    json    2    

Исправление документов в 1С 7.7

Инструментарий разработчика Администрирование данных 1С Обработка документов v77::ОУ v77::БУ 1cv7.md Россия Абонемент ($m)

Утилита для оперативного внесения изменений в любой документ базы данных, включая невидимые на форме реквизиты.

1 стартмани

29.03.2012    17768    8    alf2006x    5    

Универсальный отчет по любым типам метаданных

Инструментарий разработчика v7.7 1cv7.md Россия Абонемент ($m)

Универсальный отчет по метаданным, работающий в любой конфигурации.

1 стартмани

21.03.2012    14600    32    alexlaic    15    

Просмотр идентификатора объекта в 1С7

Инструментарий разработчика Производительность и оптимизация (HighLoad) Распределенная БД (УРИБ, УРБД) v77::ОУ v77::БУ 1cv7.md Абонемент ($m)

Обработка позволяет посмотреть внутренний идентификатор объекта (документа, справочника, счета) в 1С7. Универсальная.

1 стартмани

11.02.2012    15867    1    fixin    4    

Низкоуровневое чтение Compound-файлов (без использования внешних компонент и утилит)

Инструментарий разработчика v7.7 1cv7.md Абонемент ($m)

Низкоуровневое чтение Compound-файлов (без использования внешних компонент и утилит)

1 стартмани

01.02.2012    17903    5    andrewks    28    

История выбранных элементов для справочников

Инструментарий разработчика v7.7 1cv7.md Россия Абонемент ($m)

Для тех, кто пользуется набором классов "Перехватчик" или не боится его использовать! Вам случается часто выбирать один и тот же элемент справочника. Этот набор классов упростит эту работу!!! Теперь все последние выбранные элементы запоминаются, и можете быстро найти тот, который выбирали перед этим!

1 стартмани

10.01.2012    6759    0    Romarius    6    

Последний тюнинг известной обработки 1CQA (консоль прямых запросов 1С++) для 1С:Предприятие-77.

Консоль запросов openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

Авторы исходной версии: Дмитрий Ощепков (dmitro-75@mail.ru), Ivan T Berezdetsky (berezdetsky@yahoo.com). В предлагаемой версии: 1) Добавлена возможность выбирать тип провайдера данных ODBC или OLEDB (только базы DBF); 2) Добавлена возможность редактировать текст запроса в диалоге конструктора запросов, предоставляемого объектом "AddIn.qryConsole" ВК qryConsole.dll (только базы SQL); 3) Расширен список типов объектов, которые могут принимать параметры запроса; 4)Добавлена возможность через параметры запроса укладывать списки ссылок объектов во временные таблицы (в том числе с иерархическим включением). Эти таблицы можно использовать в тексте запроса по имени ‘#<ИмяПараметра>’; 5) Добавлена возможность открывать обработку в режиме подбора (или имитации подбора) из других форм для подбора произвольных выборок данных из базы; 6) Сделано множество других улучшений (интерфейсных и пр.);

1 стартмани

20.11.2011    270103    80    yuraos    383    

Просмотр дерева файлов

Инструментарий разработчика v7.7 1cv7.md Россия Абонемент ($m)

Просмотр каталога с вложенными каталогами в виде интерактивной таблицы

1 стартмани

16.11.2011    9970    3    Natalia    6