SQL запросы

  1. 9 г. назад

    разбираю записи ТЖ. в скульных запросах - профан

    что значит
    INNER JOIN
    и
    ASSERT(
    (FALSE = TRUE..

    Ответы: (17)
  2. и конструкцию вида
    INNER JOIN _AccRgED16308 _AccRgED16308_ED
    ON _AccRg16283_R._RecorderTRef = _AccRgED16308_ED._RecorderTRef И

    как понимать?

  3. Ну знаешь ли, надо тут с начальной школы и азбуки маленьких программистов начинать. Слишком большой пласт знаний объяснять надо

    Ответы: (4)
  4. (3) мне хватит и банального перевода в термины языка запроса 1С

    Ответы: (5) (7)
  5. (4) Знаешь ли - переводчиков в "термины языка запросов 1С" никто не написал...
    Ну, не знали, что тебе понадобится...

  6. разобралсо. INNER JOIN .. ON = внутреннее соединение.. по

  7. (4) inner join - внутреннее соединение
    Assert проверяет условие и если оно не выполняется - все останавливает по ексепшену

    Ответы: (8)
  8. (7) воо.. походу где-то здесь моя собака зарыта

  9. 12.09.2014 11:59:31 отредактировано Stim

    + правда не совсем понятно условие

    ВЫБОР КОГДА 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. Ты бы лучше объяснил в чем проблема и что ты хочешь получить

    Ответы: (11)
  11. (10) у пользователя не открывается док ОперацияБух и я хочу разобраться почему.
    выдает ошибку "недостаточно прав для выполнения операции", при этом в ЖР ничего не пишет

  12. ТЖ обрывается на последнем запросе, в котором выбираются данные из значенийСубконто РБ

  13. Есть ли где нить обращение через точку? СубконтоN.Реквизит?

    Ответы: (14) (15)
  14. (13) + В РЛС или в коде

  15. (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. Есть ли в форме документа обращения через точку, проверь.

    Ответы: (18)
  17. Stim в скульных запросах - профан

    Согласно заверениям фирмы 1С, язык запросов 1С на 80% состоит из языка запросов SQL, так что ты на 100% знаешь SQL :)

    Ответы: (20) (22)
  18. (16)в форме никакой код 1С не выполняется, инфа 100%

  19. + модуль объекта закомментил, процедуры при открытии и перед открытием убрал

    Ответы: (23)
  20. (17) неверное утверждение.
    Например, в языке запросов 1С всего 10 конструкций, 8 из которых - из SQL.
    А в SQL всего конструкций 100500. ПОлучается, я знаю только 8*100/100500 = 0,008% конструкций SQL

  21. 12.09.2014 12:23:11 отредактировано Масянька

    Как я понимаю, это продолжение вчерашнего...
    Ребята! Он (то есть автор темы - Stim) опять толком ничего не рассказал...
    У него есть БД (файловая) 8.1. Он её открыл под 3 платформой (конвертнул или фиг его знает как).
    Теперь - сыпятся ошибки...

    А автору хочу сказать - это только начало...

    Ответы: (24) (25)
  22. work Согласно заверениям фирмы 1С, язык запросов 1С на 80% состоит из языка запросов SQL, так что ты на 100% знаешь SQL :)

    Первое утверждение не значит, что язык sql состоит на 100% из языка запросов 1С

  23. (19) А через точку в РЛС или на табличном поле?

    Ответы: (27)
  24. (21) константа заголовокСистемы здесь не причем, мася. иди.. просто иди..

    Ответы: (31)
  25. (21) С чего вдруг оно должно глючить?

    Ответы: (34)
  26. 12.09.2014 12:27:15 отредактировано NcSteel

    ОТКРЫВАЮТСЯ ЛИ документы по счетам где нет Субконто?

    Ответы: (28)
  27. (23) ща удалю все РЛС на РБ Хозрасчетный и запущу еще раз.

    интересно то, что при полных правах - все запускается(не открывается только под бухом).
    если ставить совместимость с 8.2 - запускается и под бухом

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

  28. (26) да, доки со счетами где нет субконто открываются без проблем под бухом в любом режиме совместимости

    Ответы: (29)
  29. (28) Вот и ответ....

    Ответы: (30)
  30. (29) если бы в режиме совместимости с 8.2 тоже выбавало ошибку - тогда можно думать на РЛС, который не позволяет буху читать значения субконто. но ведь открывает же..

    Ответы: (32)
  31. (24) Сам ... кароче, иди...

  32. (30) В разных режимах идет по разному обращение через точку к таблица в одном случае используется "Разрешенные" а в другом нет. Вот и пытается все таблицы без контроля прав подтянуть. Но это измышления, похоже на правду

    Ответы: (33)
  33. (32) интересно. а есть где почитать об этом?

  34. (25) подтверждаю, конфиги написанные на 8.2, под движок 8.2, глючат на движке 8.3. Именно на правах. Наблюдал лично.

    Ответы: (35)
  35. (34) Объяснения этому должны быть логическими. В чем был косяк?

    Ответы: (36)
  36. (35) Отвечаю честно, не разбирался ибо некогда в это лезть, поставил рядом платформу 8.2 и через стартер. У меня это был реквизит в табличной части, который тупо отказывался заполнятся на 8.3, и абсолютно адекватно (а как иначе) заполнялся в 8.2. Ошибка = ошибке топикстартера.

  37. + режим совместимости и 8.2 в запуске - не помогли.

  38. Расследование продолжается.
    виновна признана РЛС на РБ Хозрасчетный - #ОсновноеУсловиеЧтение("Организация").

    Без неё все прекрасно открывается.
    копаю дальше

  39. 12.09.2014 14:07:38 отредактировано Stim

    вот этот вот запрос РЛС:

    ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица        
    ГДЕ ((НЕ &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
    	ИЛИ 1 В
    		(ВЫБРАТЬ ПЕРВЫЕ 1
    			1
    		ИЗ
    			РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
    		ГДЕ
    			ТекущаяТаблица.#Параметр(1) = НастройкиПравДоступаПользователей.ОбъектДоступа
    			И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
    			И НастройкиПравДоступаПользователей.Пользователь В (&ГруппыТекущегоПользователя)))  

    по-разному отрабатывает в 8.1 и 8.2.
    осталось только понять как

  40. + вернее 8.1 - возвращает ЛОЖЬ, 8.2 возвращает ИСТИНА

  41. + при этом сам РБ - открывается без проблем. странно

  42. Это точно весь РЛС?

    Ответы: (43)
  43. (42) я поставил самый простой РЛС на РБ:
    Хозрасчетный ГДЕ ИСТИНА

    он срабатывает с совмес 8.2 и не срабатывает с 8.1

  44. и походу я понял причину.

  45. Барабанная дробь !

    Ответы: (46)
  46. (45)пока что, предположительно - это связано с версией данных. Это служебный реквизит, который добавлен ко всем объектам МД, который добавляется при конвертации базы 8.1 на 8.2

  47. но.. черт.

  48. Снова барабанная дробь!

  49. для начала хочется напомнить неучам от 1С - масянькам и прочим ДВ.

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

    Ответы: (52) (56)
  50. + и без установки непосредственно платформы 8.1, что ошибочно предлагал тот же ДВ

  51. но есть одно но, конечно же, разработчики платформы не были бы столько мною любимы, если бы не эти их многочисленные но

  52. (49) это ты разрабам 1С веришь? Если <> значит. Это значит только что стимка = мудак.

    Ответы: (54)
  53. (52) ну то, что разработчики конфигураций не могут выпустить релиз без косяков - это я знал всегда.
    но сегодня я узнал, что разработчики платформы - люди гораздо коварнее

    Ответы: (55)
  54. (54) колись, гаденыш, в чем косяк?

    Ответы: (58) (67)
  55. (49) "Неучи" - ставят 8.1 и спокойно работают с БД. А "учи" - выносят себе все, что можно вынести...
    Второй день говоришь ... Ню-ню...

    Ответы: (57)
  56. 12.09.2014 16:34:59 отредактировано Stim

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

    если в базе у тебя стоит режим совместимости с 8.1 - это не значит, что она будет работать на платформе 8.1. Более того - типовая БП 1.6 НЕ БУДЕТ(!) работать на платформе 8.1, если она обновлялась как положено.

    платформа 8.1 тупо не откроет эту базу из-за несовместимой структуры данных, ясно?

    Ответы: (59) (60)
  57. 12.09.2014 16:35:28 отредактировано Stim

    (55) не буду томить - режим совместимости должен работать так, как описан в 49.

    но нет правил без исключений - в платформе 8.3.4 разрабы косякнули и там в sql запросах выбираются версии данных объектов при выполнении запроса РЛС.
    в 8.2 и в 8.5 платформах такой ошибки нет и режим совместимости там работает как надо.

    Ответы: (67)
  58. (57) Чё написал - сам понял? surprised.gif

    Ответы: (61)
  59. +(57) Ты, это... Не парься... А если что - просто так спросила...
    У меня 2 семерки стоят (25 и 27 платформы) и 3 снеговика. Так, что не парься... Я просто так спросила.

  60. (59) блин.. как бы тебе попроще..

    представь себе документ ворд, созданный в 2007 ворде. При этом разработчики офисного пакета добавили возможность эмуляции - ты можешь открыть его "как бы" в вордпаде.Вспомнить типа молодость. Эмулировать вордпад при этом будет само ПО 2007 офиса.
    ты смотришь - клево, старый добрый вордпад, как классно.

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

    теперь, внимание, вопрос: откроется ли этот документ с режимом совместимости = вордпад - непосредственно вордпадом?

    подумай как следует

    Ответы: (62)
  61. (61) Не, ты - дурак или прикидываешься?

    Ответы: (63)
  62. (62) если ты чего-то не понимаешь - можешь называть окружающих дураками, разрешаю)

    Ответы: (64)
  63. (63) Ты бы еще док 97 Excel открыл в Excel 2010, сохранил в новом формате, а потом бы наезжал на разработчиков Excel - почему док не открывается в 97 Excel...
    Хотя, у меня есть примочка для энтого...

    Ответы: (65)
  64. (64) ну так вот, а примочки, чтобы открыть типовую последнего 1.6 релиза БП на платформе 8.1 - не существует.

  65. Вобщем, при подобных траблах - пробуйте на разных платформах тестить

  66. Stim (55) не буду томить - режим совместимости должен работать так, как описан в 49.
    в 8.2 и в 8.5 платформах такой ошибки нет и режим совместимости там работает как надо.

    неужели уже версию 8,5 выпустили?????

или зарегистрируйтесь чтобы ответить!