8.х Запрос >> Хозрасчетный

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем rerewe, 12 фев 2013.

  1. TopicStarter Overlay
    rerewe
    Offline

    rerewe

    Регистрация:
    23 ноя 2012
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    1
    Привет,

    Необходимо найти ссылку документа зная лишь номер заказа. Документ: "Операция (бухгалтерский и налоговый учет)". Пояснение:

    Как делал я:
    1. Номер заказа = Номер договора. Сперва находил договор
    2. По договору вытаскивал владельца
    3. Дальше ступор... По СубконтоКт1 (Контрагент) и СубконтоКт2 (договор) искал документ. Находит, но очень долго, порядка 2-3 мин.

    Вопрос: Как сделать правильно запрос к регистру Хозрасчетный.ДвиженияСубконто ?
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    У меня есть запросы, которые и по 20 минут выполняются. Записей много в регистре?
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    покажите ваш код
  4. TopicStarter Overlay
    rerewe
    Offline

    rerewe

    Регистрация:
    23 ноя 2012
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    1
    Если бы один запрос выполнялся было бы норм, а так 2000 заказов каждый день, по которым нужно найти документ

    Сейчас

    Код:
    ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка
    ПОМЕСТИТЬ ТабДог
    ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    ГДЕ
    ДоговорыКонтрагентов.Номер = &НомерДоговора
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    Контрагенты.Ссылка
    ПОМЕСТИТЬ ТабКон
    ИЗ
    ТабДог КАК ТабДог
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
    ПО ТабДог.Ссылка.Владелец.Ссылка = Контрагенты.Ссылка
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ХозрасчетныйДвиженияССубконто.Регистратор.Ссылка
    ИЗ
    ТабКон КАК ТабКон
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
    ПО ТабКон.Ссылка = ХозрасчетныйДвиженияССубконто.СубконтоКт1.Ссылка
    Как-то так, первая часть выполняется моментально
  5. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    И на каком именно этапе долго формируется?
  6. TopicStarter Overlay
    rerewe
    Offline

    rerewe

    Регистрация:
    23 ноя 2012
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    1
    Запрос к регистру

    Пробовал максимум условий накладывать, например по СубконтоКт1 и СубконтоКт2, по СчетДт, СчетКт, бесполезно
  7. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Условия накладывайте в параметрах виртуальной таблицы...Или через ГДЕ вы делали?
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    справочник договоры контрагентов подчинен как правило справочнику контрагенты, потому думаю запрос можно сократить
    Код:
    ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка,
    ДоговорыКонтрагентов.Владелец КАК Контрагент
    ПОМЕСТИТЬ ТабДог
    ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    ГДЕ
    ДоговорыКонтрагентов.Номер = &НомерДоговора
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ХозрасчетныйДвиженияССубконто.Регистратор.Ссылка
    ИЗ
    ТабДог КАК ТабДог
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
    ПО ТабДог.Конрагент = ХозрасчетныйДвиженияССубконто.СубконтоКт1.Ссылка
  9. TopicStarter Overlay
    rerewe
    Offline

    rerewe

    Регистрация:
    23 ноя 2012
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    1
    Пытался делать и так, но походу знание не хватает в запросах... Помогите установить параметры например по СубконтоКт1 (Контрагент) и СубконтоКт2(Договор) и СчетДт(Контрагент), где
    СубконтоКт1 (Контрагент) - Иванов Иван - код 001
    СубконтоКт2(Договор) - Основной - код 001
    СчетДт(Контрагент) - Сбербанк - код 002

    Можно, там без разницы, работает и так быстро
  10. TopicStarter Overlay
    rerewe
    Offline

    rerewe

    Регистрация:
    23 ноя 2012
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    1
    Во, уже лучше!)

    23 секунды:

    Код:
    ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка
    ПОМЕСТИТЬ ТабДог
    ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    ГДЕ
    ДоговорыКонтрагентов.Номер = &НомерДоговора
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    Контрагенты.Ссылка
    ПОМЕСТИТЬ ТабКон
    ИЗ
    ТабДог КАК ТабДог
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
    ПО ТабДог.Ссылка.Владелец.Ссылка = Контрагенты.Ссылка
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    Контрагенты.Ссылка
    ПОМЕСТИТЬ ТабПС
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ГДЕ
    Контрагенты.Код = &Код
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ХозрасчетныйДвиженияССубконто.Регистратор.Ссылка
    ИЗ
    ТабДог КАК ТабДог
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
    ,
    ,
    СчетДт.Код = "76.05"
    И СчетКт.Код = "62.02",
    ,
    ) КАК ХозрасчетныйДвиженияССубконто
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабКон КАК ТабКон
    ПО (ТабКон.Ссылка = ХозрасчетныйДвиженияССубконто.СубконтоКт1.Ссылка)
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТабПС КАК ТабПС
    ПО (ТабПС.Ссылка = ХозрасчетныйДвиженияССубконто.СубконтоДт1.Ссылка)
    ПО ТабДог.Ссылка = ХозрасчетныйДвиженияССубконто.СубконтоКт2.Ссылка
  11. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    как бы мне непонятно.. почему сразу не сделать запрос к регистру РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто с отбором по счету и субконто и получить регистратор..

    зачем вам понадобилось 3 запроса во временных таблицах, да еще и соединения..
  12. TopicStarter Overlay
    rerewe
    Offline

    rerewe

    Регистрация:
    23 ноя 2012
    Сообщения:
    49
    Симпатии:
    0
    Баллы:
    1
    договор не известен и его владелец изначально

Поделиться этой страницей