разбираю записи ТЖ. в скульных запросах - профан
что значит
INNER JOIN
и
ASSERT(
(FALSE = TRUE..
разбираю записи ТЖ. в скульных запросах - профан
что значит
INNER JOIN
и
ASSERT(
(FALSE = TRUE..
и конструкцию вида
INNER JOIN _AccRgED16308 _AccRgED16308_ED
ON _AccRg16283_R._RecorderTRef = _AccRgED16308_ED._RecorderTRef И
как понимать?
Ну знаешь ли, надо тут с начальной школы и азбуки маленьких программистов начинать. Слишком большой пласт знаний объяснять надо
(4) Знаешь ли - переводчиков в "термины языка запросов 1С" никто не написал...
Ну, не знали, что тебе понадобится...
разобралсо. INNER JOIN .. ON = внутреннее соединение.. по
(7) воо.. походу где-то здесь моя собака зарыта
+ правда не совсем понятно условие
ВЫБОР КОГДА ASSERT( (FALSE = TRUE ИЛИ TRUE = TRUE ИЛИ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 КАК _Q_001_F_000 ИЗ _РегистрСведений.НастройкиПравДоступаПользователей _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001 ГДЕ _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_TYPE = 0x08 И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_RTRef = 0x00002010 И _РегистрБухгалтерии.Хозрасчетный_R._Fld16284RRef = _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_RRRef И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14642RRef = 0xb3c897e4ca4f406a4c22c3c1ee70bd42 И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14643RRef В (0x86c3005056c0000811df79f5958a77f4,0xa598ba7ef1cb9366471c098758d5710e))) И FALSE = TRUE,'')
Ты бы лучше объяснил в чем проблема и что ты хочешь получить
(10) у пользователя не открывается док ОперацияБух и я хочу разобраться почему.
выдает ошибку "недостаточно прав для выполнения операции", при этом в ЖР ничего не пишет
ТЖ обрывается на последнем запросе, в котором выбираются данные из значенийСубконто РБ
Есть ли где нить обращение через точку? СубконтоN.Реквизит?
(13) + В РЛС или в коде
(13)последнее, на чем остановился(надеюсь, здесь и произошла ошибка чтения данных) ТЖ:
Sql="ВЫБРАТЬ ВЫБОР КОГДА ASSERT( (FALSE = TRUE ИЛИ TRUE = TRUE ИЛИ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 КАК _Q_001_F_000 ИЗ _РегистрСведений.НастройкиПравДоступаПользователей _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001 ГДЕ _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_TYPE = 0x08 И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_RTRef = 0x00002010 И _РегистрБухгалтерии.Хозрасчетный_R._Fld16284RRef = _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_RRRef И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14642RRef = 0xb3c897e4ca4f406a4c22c3c1ee70bd42 И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14643RRef В (0x86c3005056c0000811df79f5958a77f4,0xa598ba7ef1cb9366471c098758d5710e))) И FALSE = TRUE,'') ТОГДА _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._LineNo КОНЕЦ КАК f_1, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Correspond КАК f_2, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._KindRRef КАК f_3, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Value_TYPE КАК f_4, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Value_RTRef КАК f_5, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Value_RRRef КАК f_6 ИЗ _РегистрБухгалтерии.Хозрасчетный _РегистрБухгалтерии.Хозрасчетный_R ВНУТРЕННЕЕ СОЕДИНЕНИЕ _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED ПО _РегистрБухгалтерии.Хозрасчетный_R._RecorderTRef = _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._RecorderTRef И _РегистрБухгалтерии.Хозрасчетный_R._RecorderRRef = _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._RecorderRRef И _РегистрБухгалтерии.Хозрасчетный_R._LineNo = _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._LineNo И _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Correspond = 0 ГДЕ _РегистрБухгалтерии.Хозрасчетный_R._RecorderTRef = 0x00002068 И _РегистрБухгалтерии.Хозрасчетный_R._RecorderRRef = 0xb9f2005056c0000811dfe251ba4d935e ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВЫБОР КОГДА ASSERT( (FALSE = TRUE ИЛИ TRUE = TRUE ИЛИ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 КАК _Q_001_F_000 ИЗ _РегистрСведений.НастройкиПравДоступаПользователей _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001 ГДЕ _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_TYPE = 0x08 И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_RTRef = 0x00002010 И _РегистрБухгалтерии.Хозрасчетный_R._Fld16284RRef = _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14641_RRRef И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14642RRef = 0xb3c897e4ca4f406a4c22c3c1ee70bd42 И _РегистрСведений.НастройкиПравДоступаПользователей_Q_001_T_001._Fld14643RRef В (0x86c3005056c0000811df79f5958a77f4,0xa598ba7ef1cb9366471c098758d5710e))) И FALSE = TRUE,'') ТОГДА _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._LineNo КОНЕЦ КАК f_7, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Correspond КАК f_8, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._KindRRef КАК f_9, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Value_TYPE КАК f_10, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Value_RTRef КАК f_11, _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Value_RRRef КАК f_12 ИЗ _РегистрБухгалтерии.Хозрасчетный _РегистрБухгалтерии.Хозрасчетный_R ВНУТРЕННЕЕ СОЕДИНЕНИЕ _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED ПО _РегистрБухгалтерии.Хозрасчетный_R._RecorderTRef = _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._RecorderTRef И _РегистрБухгалтерии.Хозрасчетный_R._RecorderRRef = _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._RecorderRRef И _РегистрБухгалтерии.Хозрасчетный_R._LineNo = _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._LineNo И _РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто_ED._Correspond = 1 ГДЕ _РегистрБухгалтерии.Хозрасчетный_R._RecorderTRef = 0x00002068 И _РегистрБухгалтерии.Хозрасчетный_R._RecorderRRef = 0xb9f2005056c0000811dfe251ba4d935e ПОРЯДОК ПО f_1, f_2"
Есть ли в форме документа обращения через точку, проверь.
(16)в форме никакой код 1С не выполняется, инфа 100%
+ модуль объекта закомментил, процедуры при открытии и перед открытием убрал
(17) неверное утверждение.
Например, в языке запросов 1С всего 10 конструкций, 8 из которых - из SQL.
А в SQL всего конструкций 100500. ПОлучается, я знаю только 8*100/100500 = 0,008% конструкций SQL
Как я понимаю, это продолжение вчерашнего...
Ребята! Он (то есть автор темы - Stim) опять толком ничего не рассказал...
У него есть БД (файловая) 8.1. Он её открыл под 3 платформой (конвертнул или фиг его знает как).
Теперь - сыпятся ошибки...
А автору хочу сказать - это только начало...
work Согласно заверениям фирмы 1С, язык запросов 1С на 80% состоит из языка запросов SQL, так что ты на 100% знаешь SQL :)
Первое утверждение не значит, что язык sql состоит на 100% из языка запросов 1С
ОТКРЫВАЮТСЯ ЛИ документы по счетам где нет Субконто?
(23) ща удалю все РЛС на РБ Хозрасчетный и запущу еще раз.
интересно то, что при полных правах - все запускается(не открывается только под бухом).
если ставить совместимость с 8.2 - запускается и под бухом
Почему так происходит и на чем сыпется - вот с чем надо разобраться
(24) Сам ... кароче, иди...
(32) интересно. а есть где почитать об этом?
(35) Отвечаю честно, не разбирался ибо некогда в это лезть, поставил рядом платформу 8.2 и через стартер. У меня это был реквизит в табличной части, который тупо отказывался заполнятся на 8.3, и абсолютно адекватно (а как иначе) заполнялся в 8.2. Ошибка = ошибке топикстартера.
+ режим совместимости и 8.2 в запуске - не помогли.
Расследование продолжается.
виновна признана РЛС на РБ Хозрасчетный - #ОсновноеУсловиеЧтение("Организация").
Без неё все прекрасно открывается.
копаю дальше
вот этот вот запрос РЛС:
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица ГДЕ ((НЕ &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей) ИЛИ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей ГДЕ ТекущаяТаблица.#Параметр(1) = НастройкиПравДоступаПользователей.ОбъектДоступа И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации) И НастройкиПравДоступаПользователей.Пользователь В (&ГруппыТекущегоПользователя)))
по-разному отрабатывает в 8.1 и 8.2.
осталось только понять как
+ вернее 8.1 - возвращает ЛОЖЬ, 8.2 возвращает ИСТИНА
+ при этом сам РБ - открывается без проблем. странно
(42) я поставил самый простой РЛС на РБ:
Хозрасчетный ГДЕ ИСТИНА
он срабатывает с совмес 8.2 и не срабатывает с 8.1
и походу я понял причину.
(45)пока что, предположительно - это связано с версией данных. Это служебный реквизит, который добавлен ко всем объектам МД, который добавляется при конвертации базы 8.1 на 8.2
но.. черт.
Снова барабанная дробь!
для начала хочется напомнить неучам от 1С - масянькам и прочим ДВ.
Режим совместимости - это что-то типа "эмуляции" платформенной среды. если режим совместимости указан 8.1 - это значит, что БД будет работать на функционале платформы 8.1, не больше и не меньше, запускай ты ей хоть на 8.9
это сделано как раз для того, чтобы старые архивы запускать на новых платформах без ущерба функциональности
+ и без установки непосредственно платформы 8.1, что ошибочно предлагал тот же ДВ
но есть одно но, конечно же, разработчики платформы не были бы столько мною любимы, если бы не эти их многочисленные но
(56) масянька, я бы на твоем месте помолчал. не усугубляй свое положение своим полным незнанием предметной области.
если в базе у тебя стоит режим совместимости с 8.1 - это не значит, что она будет работать на платформе 8.1. Более того - типовая БП 1.6 НЕ БУДЕТ(!) работать на платформе 8.1, если она обновлялась как положено.
платформа 8.1 тупо не откроет эту базу из-за несовместимой структуры данных, ясно?
(55) не буду томить - режим совместимости должен работать так, как описан в 49.
но нет правил без исключений - в платформе 8.3.4 разрабы косякнули и там в sql запросах выбираются версии данных объектов при выполнении запроса РЛС.
в 8.2 и в 8.5 платформах такой ошибки нет и режим совместимости там работает как надо.
+(57) Ты, это... Не парься... А если что - просто так спросила...
У меня 2 семерки стоят (25 и 27 платформы) и 3 снеговика. Так, что не парься... Я просто так спросила.
(59) блин.. как бы тебе попроще..
представь себе документ ворд, созданный в 2007 ворде. При этом разработчики офисного пакета добавили возможность эмуляции - ты можешь открыть его "как бы" в вордпаде.Вспомнить типа молодость. Эмулировать вордпад при этом будет само ПО 2007 офиса.
ты смотришь - клево, старый добрый вордпад, как классно.
тебе так понравилось, что ты скопировала этот док на флешку и скинула на свой старый комп, где стоит только вордпад.
теперь, внимание, вопрос: откроется ли этот документ с режимом совместимости = вордпад - непосредственно вордпадом?
подумай как следует
(64) ну так вот, а примочки, чтобы открыть типовую последнего 1.6 релиза БП на платформе 8.1 - не существует.
Вобщем, при подобных траблах - пробуйте на разных платформах тестить