Разработка и оптимизация запросов в 1С:Предприятие 8.3. Модуль 1. Общая информация о хранении данных в «1С:Предприятие 8»
На данной странице принимаются вопросы по материалам первого модуля курса «Разработка и оптимизация запросов в 1С:Предприятие 8.3».
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (337):
Комментарии закрыты

Добрый день еще раз. У меня платфрма 8.3.8.1933, где можно скачать архив базы для обучения для моей платформы?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо. Архив получила.
Добрый день. Вопрос по условию в запросе. В запросе использую внутренние таблицы, таблицы БД(регистр сведений периодический). В результирующем запросе вычисляется поле, учитывающее значения из временной таблицы и из 2х регистров сведений. (через соединение). По этому полю нужно устроить отбор. Без отбора запрос выполняется 1732мс и количество записей 9373, а вот с условием где: запрос выдает только 779 записей, но выполняется 340346мс. Это за маленький период. На больших периодах запрос подвисает. ОТчет строится на скд. Как устроить отбор по вычисляемому полю, чтобы он так сильно не влиял на производительность?
…
(текст комментария доступен только участникам Мастер-группы)
Может ли влиять на производительность использование конструкции ВЫБРАТЬ КОГДА ТОГДА ИНАЧЕ КОНЕЦ в условии ГДЕ. И можно ли там эту конструкцию использовать?
…
(текст комментария доступен только участникам Мастер-группы)
Василий, спасибо за комментарий. Поле для отбора вычисляю в запросе. Поле расчитывается из временной таблицы и 2х регистров сведений, так что в соединении тоже не пойму, как отобрать. Может Запрос с соединениями сделать , как отдельный пакет, вычислить там это выражение, а потом результирующим запрсом отбирать по уже вычисленному полю? Я вставлю сюда текст запроса. Он не по заданиям.
ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ПродажиОбороты.ДокументПродажи,
ПродажиОбороты.ДоговорКонтрагента.ТипЦен КАК ТипЦен,
ВЫБОР
КОГДА НЕ ПродажиОбороты.ДоговорКонтрагента.ТипЦен.Рассчитывается
ТОГДА ПродажиОбороты.ДоговорКонтрагента.ТипЦен
ИНАЧЕ ПродажиОбороты.ДоговорКонтрагента.ТипЦен.БазовыйТипЦен
КОНЕЦ КАК БазовыйТипЦен,
СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот,
СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот,
ПродажиОбороты.Контрагент КАК Контрагент,
ПродажиОбороты.Период,
СУММА(ПродажиОбороты.ДоговорКонтрагента.ТипЦен.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценки
ПОМЕСТИТЬ ВТ_Продажи
ИЗ
РегистрНакопления.Продажи.Обороты(&НачДата, &КонДата, День, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Контрагент,
ПродажиОбороты.ДокументПродажи,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Период,
ПродажиОбороты.ДоговорКонтрагента.ТипЦен,
ВЫБОР
КОГДА НЕ ПродажиОбороты.ДоговорКонтрагента.ТипЦен.Рассчитывается
ТОГДА ПродажиОбороты.ДоговорКонтрагента.ТипЦен
ИНАЧЕ ПродажиОбороты.ДоговорКонтрагента.ТипЦен.БазовыйТипЦен
КОНЕЦ
ИМЕЮЩИЕ
СУММА(ПродажиОбороты.КоличествоОборот) > 0
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЦеныНоменклатуры.ТипЦен,
ЦеныНоменклатуры.Номенклатура,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены,
ВТ_Продажи.ДокументПродажи
ПОМЕСТИТЬ ВТДатаЦены
ИЗ
ВТ_Продажи КАК ВТ_Продажи
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ВТ_Продажи.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ВТ_Продажи.БазовыйТипЦен = ЦеныНоменклатуры.ТипЦен
И ВТ_Продажи.Период >= ЦеныНоменклатуры.Период
СГРУППИРОВАТЬ ПО
ЦеныНоменклатуры.ТипЦен,
ЦеныНоменклатуры.Номенклатура,
ВТ_Продажи.ДокументПродажи
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
_ПроцентыИзмененияЦенНоменклатуры.ТипЦен,
_ПроцентыИзмененияЦенНоменклатуры.Номенклатура,
МАКСИМУМ(_ПроцентыИзмененияЦенНоменклатуры.Период) КАК ДатаПроцента,
ВТ_Продажи.ДокументПродажи
ПОМЕСТИТЬ ВТДатаПроцента
ИЗ
ВТ_Продажи КАК ВТ_Продажи
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._ПроцентыИзмененияЦенНоменклатуры КАК _ПроцентыИзмененияЦенНоменклатуры
ПО (ВТ_Продажи.Номенклатура = _ПроцентыИзмененияЦенНоменклатуры.Номенклатура
ИЛИ ВТ_Продажи.Номенклатура.Родитель = _ПроцентыИзмененияЦенНоменклатуры.Номенклатура)
И ВТ_Продажи.ТипЦен = _ПроцентыИзмененияЦенНоменклатуры.ТипЦен
И ВТ_Продажи.Период >= _ПроцентыИзмененияЦенНоменклатуры.Период
СГРУППИРОВАТЬ ПО
ВТ_Продажи.ДокументПродажи,
_ПроцентыИзмененияЦенНоменклатуры.ТипЦен,
_ПроцентыИзмененияЦенНоменклатуры.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Продажи.Номенклатура КАК Номенклатура,
ВТ_Продажи.ДокументПродажи КАК ДокументПродажи,
ВТ_Продажи.ТипЦен КАК ТипЦен,
ВТ_Продажи.СтоимостьОборот КАК СтоимостьОборот,
ВТ_Продажи.Контрагент КАК Контрагент,
НАЧАЛОПЕРИОДА(ВТ_Продажи.Период, МЕСЯЦ) КАК Месяц,
(100 + ВЫБОР
КОГДА _ПроцентыИзмененияЦенНоменклатуры.Процент ЕСТЬ NULL
ТОГДА ЕСТЬNULL(ВТ_Продажи.ПроцентСкидкиНаценки, 0)
ИНАЧЕ _ПроцентыИзмененияЦенНоменклатуры.Процент
КОНЕЦ) / 100 * ЦеныНоменклатуры.Цена * ВТ_Продажи.КоличествоОборот * ВТ_Продажи.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВТ_Продажи.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК СтоимостьПоЦенам,
100 * (1 — (100 + ВЫБОР
КОГДА _ПроцентыИзмененияЦенНоменклатуры.Процент ЕСТЬ NULL
ТОГДА ЕСТЬNULL(ВТ_Продажи.ПроцентСкидкиНаценки, 0)
ИНАЧЕ _ПроцентыИзмененияЦенНоменклатуры.Процент
КОНЕЦ) / 100 * ЦеныНоменклатуры.Цена * ВТ_Продажи.КоличествоОборот * ВТ_Продажи.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВТ_Продажи.Номенклатура.ЕдиницаДляОтчетов.Коэффициент / ВТ_Продажи.СтоимостьОборот) КАК Процент
{ВЫБРАТЬ
Месяц КАК Месяц,
Контрагент.*,
Номенклатура.*,
ДокументПродажи.*,
ТипЦен.*,
СтоимостьОборот,
СтоимостьПоЦенам,
Процент}
ИЗ
ВТ_Продажи КАК ВТ_Продажи
ЛЕВОЕ СОЕДИНЕНИЕ ВТДатаЦены КАК ВТДатаЦены
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ВТДатаЦены.ТипЦен = ЦеныНоменклатуры.ТипЦен
И ВТДатаЦены.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ВТДатаЦены.ДатаЦены = ЦеныНоменклатуры.Период
ПО ВТ_Продажи.Номенклатура = ВТДатаЦены.Номенклатура
И ВТ_Продажи.ДокументПродажи = ВТДатаЦены.ДокументПродажи
И ВТ_Продажи.БазовыйТипЦен = ВТДатаЦены.ТипЦен
ЛЕВОЕ СОЕДИНЕНИЕ ВТДатаПроцента КАК ВТДатаПроцента
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений._ПроцентыИзмененияЦенНоменклатуры КАК _ПроцентыИзмененияЦенНоменклатуры
ПО ВТДатаПроцента.ТипЦен = _ПроцентыИзмененияЦенНоменклатуры.ТипЦен
И ВТДатаПроцента.ДатаПроцента = _ПроцентыИзмененияЦенНоменклатуры.Период
И (ВТДатаПроцента.Номенклатура = _ПроцентыИзмененияЦенНоменклатуры.Номенклатура
ИЛИ ВТДатаПроцента.Номенклатура.Родитель = _ПроцентыИзмененияЦенНоменклатуры.Номенклатура)
ПО (ВТ_Продажи.Номенклатура = ВТДатаПроцента.Номенклатура
ИЛИ ВТ_Продажи.Номенклатура.Родитель = ВТДатаПроцента.Номенклатура
ИЛИ ВТДатаПроцента.Номенклатура ЕСТЬ NULL )
И (ВТ_Продажи.ТипЦен = ВТДатаПроцента.ТипЦен
ИЛИ ВТДатаПроцента.ТипЦен ЕСТЬ NULL )
И ВТ_Продажи.ДокументПродажи = ВТДатаПроцента.ДокументПродажи
ГДЕ
100 * (1 — (100 + ВЫБОР
КОГДА _ПроцентыИзмененияЦенНоменклатуры.Процент ЕСТЬ NULL
ТОГДА ЕСТЬNULL(ВТ_Продажи.ПроцентСкидкиНаценки, 0)
ИНАЧЕ _ПроцентыИзмененияЦенНоменклатуры.Процент
КОНЕЦ) / 100 * ЦеныНоменклатуры.Цена * ВТ_Продажи.КоличествоОборот * ВТ_Продажи.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВТ_Продажи.Номенклатура.ЕдиницаДляОтчетов.Коэффициент / ВТ_Продажи.СтоимостьОборот) < -2
{ГДЕ
ВТ_Продажи.Контрагент.*,
ВТ_Продажи.Номенклатура.*,
ВТ_Продажи.ДокументПродажи.*,
ВТ_Продажи.ТипЦен.*,
(НАЧАЛОПЕРИОДА(ВТ_Продажи.Период, МЕСЯЦ)) КАК Месяц}
УПОРЯДОЧИТЬ ПО
Месяц,
Контрагент ИЕРАРХИЯ
Перенесла результирующий запрос во временную таблицу и уже из нее получила поля и по полю сделала отбор. Отчет стал значительно быстрее работать. Спасибо большое. Благодаря Вам, наконец, наступила ясность.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Начала изучать Ваш курс. И сразу же столкнулась с большим для меня вопросом. Цитирую текст: «(поиск оптимального плана выполнения запроса на основании некоторых сведений – потенциальное число строк, извлекаемое из каждой таблицы, получаемое из статистики, наличие индексов, наличие сохраненного плана запроса в кэше и т.д.). » Это встроенный механизм платформы 1С. А есть ли такие требования к написанию запроса в 1С. И должна ли я учитывать эти параметры при написании запросов? Или про это дальше в курсе? И простите за «глупый вопрос», что такое «сохраненный план запроса в кэше»?
…
(текст комментария доступен только участникам Мастер-группы)
То есть, если у меня в текущем сеансе пользователя(или это для сервера по всем запросам?) уже были подобные запросы(например, обращение к одним и тем же виртуальным таблицам, их соединения, объединения), то запрос субд возьмет из тех, что уже были?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Консоль запросов взята отсюда https://its.1c.ru/db/metod8dev/content/4500/hdoc
1. При запуске консоли из толстого клиента, консоль запускается, но при попытке открыть конструктор запроса выдается ошибка см. скрин №1. Из под тонкого клиента, именно из под тонкого как ни странно, конструктор запускается и с ним можно работать. Вопрос: почему под толстым клиентом выдается ошибка?
2. Работать с конструктором запроса из п.1 можно с определенным ограничением. В секции ввода условия недоступны шаблоны их ввода. см. скрин №2. Т.е. каждое любое условие вводишь как произвольное (пиктограммы ввода произвольного условия вообще не отображается). Можно как то привести ситуацию к той что показывается в видеоуроках? Что бы было удобнее вводить не произвольные условия?
Релиз платформы 8.3.10 2699. Режим совместимости интерфейса «Такси». Режим совместимости «Не установлен».
…
(текст комментария доступен только участникам Мастер-группы)
Понятно. Спасибо.
Здравствуйте,
Вопрос по структуре таблиц метаданных:
Посмотрел через ПолучитьСтруктуруХраненияБазыДанных() имена табличных частей.
Там не совсем в том виде, о котором вы говорите (_Reference_VT).
Вижу, например:
«Reference67.VT1250»
P.S. n, k в угловых скобках не выводит в сообщение.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Дублирую свое сообщение, отправленное вчера,потому что не вижу его в списке вопросов. Возникает ошибка при работе с консолью запросов, не зависимо какая версия, для 8.2 или 8.3. При попытке создания запроса, через конструктор запросов, используя визуальную часть конструктора программа выдает ошибку. Скриншоты были отправлены с версии платформы 8.3.11.2924. Поменял платформу на 8.3.11.2899. Ситуация не изменилась. Крах работы приложения. Подскажите какую версию используете, Режим совместимость конфигурации установлена — Не использовать. Запуск с правами Администратора не помогает.
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо за информацию.
Приступила к курсу запросов. Закончила 1й модуль. Вопрос один по консоли запроса с ИТС для 8.3 — закладка связи в конструкторе запроса. Позволяет делать только 2 связи.
У меня есть 3 таблицы: ХозрасчетныйОбороты, СписаниеСРасчетногоСчетаРасшифровкаПлатежа (для оплаты аванса) и КорректировкаДолгаДебиторскаяЗадолженность (закрытие аванса). Мне надо связать ХозрасчетныйОбороты и СписаниеСРасчетногоСчетаРасшифровкаПлатежа по ссылке, ХозрасчетныйОбороты и КорректировкаДолгаДебиторскаяЗадолженность + КорректировкаДолгаДебиторскаяЗадолженность и СписаниеСРасчетногоСчетаРасшифровкаПлатежа
Ну никак не соображу как это сделать. Дублировать еще раз таблицу СписаниеСРасчетногоСчетаРасшифровкаПлатежа
Помогите, пожалуйста. очень она удобна во всем остальном.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый вечер! скачала с https://its.1c.ru/db/metod8dev/content/4500/hdoc ИнструментыРазработчикаконсольЗапросов, запускаю в толстом клиенте (режим совместимости интерфейса Такси. Разрешить Версия 8.2, режим совместимости Версия 8.3.8). При попытке открыть Конструктор в пустом поле Текст запроса получаю ошибку: Ожидается выражение «ВЫБРАТЬ». Как лечить? В тонком открывается нормально. спасибо
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
скачала консоль с сайта
http://its.1c.ru/db/metod8dev/content/4500/hdoc
Выдает ошибку при запуске «…Процедура или функция не определена СтрНайти»
Может скинете 100% рабочую консоль?
…
(текст комментария доступен только участникам Мастер-группы)
ОК,Спасибо )
Здравствуйте при вызове конструктора запросов из консоли запросов, есть отличия от конструктора вызванного в конфигураторе (в частности отличается закладка условия и, что очень плохо, нельзя вызвать конструктор запроса в условии).Помогите пожалуйста решить эту проблему.
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
У меня такой вопрос.. Хочу выгружать данные (двоичные данные в том числе) с 1с в базу SQL, что лучше использовать внешний источник и хранимые процедуры или же ком объект ADODB, может еще варианты про которые я не знаю?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо!
Здравствуйте!
при запуске скачанной обработки для консоли запросов — ошибка Процедура или функция с указанным именем не определена (СтрНачинаетсяС)
В Вопросах-Ответах этот вопрос рассматривался, но ссылка на решенрие не работает — уходит на стартовую страницу курсов по планированию.
Помогите, пожалуйста.
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо! Вроде заработало.
Подскажите пожалуйста механизмы получения УИД в запросе
…
(текст комментария доступен только участникам Мастер-группы)
Эта операция ресурса емкая?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо.
Добрый день!
Порекомендуйте, пожалуйста, источники, где можно почитать что должно исполняться на Сервере, а что на Клиенте.
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо!
В методичке, во втором модуле — в том месте где описывается первый видео урок, написано «Обратитесь к файлам Query-2-Syntax-1 и Query-2-Syntax-1-add» на странице с материалам курса. Возможно это описка? Я не нашел эти файлы.
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте. У меня возник вопрос по 1ой главе методички, где описывается механизм получения данных из виртуальной таблицы «Остатки» регистра накопления. Написано, что «Платформа сначала получает текущие остатки регистра (остатки на текущую дату), которые хранятся в таблице итогов на дату 01.11.3999 00:00:00,
затем корректирует эти остатки в соответствии с записями из таблицы движений за период
с даты получения остатков по дату текущих остатков.» Вопрос что это за дата «01.11.3999 00:00:00»? Причем в тексте эта дата называется остатки на «текущую дату», а далее говорится что остатки на «текущую дату» корректируются записями по «дату текущих остатков». Не могли бы Вы прокомментировать этот момент.
…
(текст комментария доступен только участникам Мастер-группы)
Благодарю за развернутый ответ. Теперь ясно в общих чертах.
Добрый день. Подскажите в чем может быть проблема — платформа 8.3.7.2027.
Запускаю консоль запросов для 8.3 с диска ИТС из каталога который вы указывали в комментариях ранее. и появляется ошибка как на скриншоте.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день, подскажите как запросом вытащить ГУИД элемента справочника?
…
(текст комментария доступен только участникам Мастер-группы)
ВЫБРАТЬ
Номенклатура.ссылка,
Номенклатура.наименование
Из справочник.Номенклатура КАК НОМЕНКЛАТУРА
перебрал массу вариантов но не получается получить в консоле запросов код уид
…
(текст комментария доступен только участникам Мастер-группы)
На сайте ИТС перекопал все не нашел такой настройки, если не сложно сбросить ссылку на WEB-ресурс буду очень благодарен! Заранее спасибо.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день! Интереса ради посмотрела, как выглядят данные в таблице одного документа. Заинтересовало поле date_time. Документ от 2015 года, а дата в базе данных выглядит ‘4015-12-08 19:22:55.000’. Почему 4015? Часы-минусы-секунды совпадают.
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо!
Может у Вас по-другому запрос отрабатывает или я неправильно написала условия в запросе. Первый интервал все равно пропадает (между датой отгрузки и первой датой оплаты), если не ставить условие по договору. Попробовала выбрать 2 договора в списке, результат тот же, как только формирую по одному конкретному договору — результат верный. Запрос прицепила. Проверила несколько раз на разных базах УПП, консоль отрабатывает везде одинаково. Можете ткнуть носом :), что я не вижу?
В базе ведутся все возможные варианты договоров: По заказам, по документам расчетов, по договору в целом, по заказам и документам расчетов, по договору в целом и документам расчетов, в валюте. Заставить вести договора правильно и определиться все-таки с каким-то одним видом учета сложно )))
…
(текст комментария доступен только участникам Мастер-группы)
…
(текст комментария доступен только участникам Мастер-группы)
Огромное спасибо за помощь! Поправила в запросе ВТ с условием «Выбрать Первые 1», и все получилось.
…
(текст комментария доступен только участникам Мастер-группы)
Подскажите, как получить первую запись по каждому договору?
Например по каждому договору, получить первую реализация?
…
(текст комментария доступен только участникам Мастер-группы)
После прочтения, почему то решил, что есть метод проще.
Спасибо!
Запрос не посмотреть..
Выводится в виде ромбов со знаками вопроса.
что-то с кодировкой..
Кликните на файл и нажмите «Сохранить ссылку как». Файл сохранится в корректном формате.
Добрый день.
Подскажите пожалуйста, есть ли в данном курсе пример распределения оплат по отгрузкам методом ФИФО одним запросом??? Есть задача по линейному расчету пени за просрочку оплаты. По договорам с ведением взаиморасчетов по заказам разобралась, а вот по договору в целом не знаю с какого конца подойти (((
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо.
Василий, а как решить такую задачу без обработки результата в модуле, а только запросом? Если, допустим, списание по ФИФО нужно получить в отчете на СКД?
…
(текст комментария доступен только участникам Мастер-группы)
В запросе след.строку «ПартииТоваровОстатки.Партия.МоментВремени как МоментВремени» — можно применить для любого регистра накопления?
Извините, что мучаю ))) Но задание надо решать, а я зависла с этим расчетом пени.
…
(текст комментария доступен только участникам Мастер-группы)
Можете помочь разобраться с оплатами, привязанными к документам отгрузок по договору в целом. Кажется я перемудрила в запросе, не пойму где ошиблась (((
Тестирую на одном договоре. Конфигурация УПП 1.3.
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОбороты.Период,
ВзаиморасчетыСКонтрагентамиОбороты.Регистратор,
ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
ВзаиморасчетыСКонтрагентамиОбороты.Контрагент,
ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход КАК СуммаОборот,
ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_Отгрузки
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Организация = &Организация) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ
ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента = &Договор
;
////////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Отгрузки.Регистратор,
ВТ_Отгрузки.ДоговорКонтрагента,
ВТ_Отгрузки.Контрагент,
ВТ_Отгрузки.Период,
СУММА(ВТ_Отгрузки.СуммаОборот) КАК СуммаОборот
ПОМЕСТИТЬ ВТ_ДокументыОтгрузкиПоДоговоруВЦелом
ИЗ
ВТ_Отгрузки КАК ВТ_Отгрузки
ГДЕ
(ВТ_Отгрузки.Сделка = ЗНАЧЕНИЕ(Документ.ЗАказПокупателя.ПустаяСсылка)
ИЛИ ВТ_Отгрузки.Сделка = НЕОПРЕДЕЛЕНО)
СГРУППИРОВАТЬ ПО
ВТ_Отгрузки.Регистратор,
ВТ_Отгрузки.Период,
ВТ_Отгрузки.ДоговорКонтрагента,
ВТ_Отгрузки.Контрагент
;
//////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.
СуммаВзаиморасчетовНачальныйОстаток,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход
ПОМЕСТИТЬ ВТ_Движения
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
&НачалоПериода,
&ТекущаяДата,
Регистратор,
ДвиженияИГраницыПериода,
ДоговорКонтрагента В
(ВЫБРАТЬ
ВТ_ДокументыОтгрузкиПоДоговоруВЦелом.ДоговорКонтрагента
ИЗ
ВТ_ДокументыОтгрузкиПоДоговоруВЦелом)) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
;
/////////////////////////////////
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.
СуммаВзаиморасчетовНачальныйОстаток,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход
ПОМЕСТИТЬ ВТ_ДвиженияПоДням
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
&НачалоПериода,
&ТекущаяДата,
День,
ДвиженияИГраницыПериода,
ДоговорКонтрагента В
(ВЫБРАТЬ
ВТ_ДокументыОтгрузкиПоДоговоруВЦелом.ДоговорКонтрагента
ИЗ
ВТ_ДокументыОтгрузкиПоДоговоруВЦелом)) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
;
//////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
юн.Период,
юн.Регистратор,
юн.ДоговорКонтрагента,
юн.СуммаОтгрузки,
юн.НачальноеСальдо
ПОМЕСТИТЬ ВТ_РеализацииПоДоговоруВЦелом
ИЗ
(ВЫБРАТЬ
ВТ_Движения.Период КАК Период,
ВТ_Движения.Регистратор КАК Регистратор,
ВТ_Движения.ДоговорКонтрагента КАК ДоговорКонтрагента,
ВТ_Движения.СуммаВзаиморасчетовПриход КАК СуммаОтгрузки,
ВТ_Движения.СуммаВзаиморасчетовНачальныйОстаток КАК НачальноеСальдо
ИЗ
ВТ_Движения КАК ВТ_Движения
ГДЕ
ВТ_Движения.СуммаВзаиморасчетовПриход > 0
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_Движения.Период,
«НачальныйОстаток»,
ВТ_Движения.ДоговорКонтрагента,
ВТ_Движения.СуммаВзаиморасчетовНачальныйОстаток,
ВТ_Движения.СуммаВзаиморасчетовНачальныйОстаток
ИЗ
ВТ_Движения КАК ВТ_Движения
ГДЕ
ВТ_Движения.СуммаВзаиморасчетовНачальныйОстаток > 0
И ВТ_Движения.Период = &НачалоПериода) КАК юн
;
/////////////////////////////////////////////////////////
ВЫБРАТЬ
подз.Период,
подз.ДоговорКонтрагента,
подз.СуммаОплаты,
ВЫБОР
КОГДА подз.СуммаОплаты > подз.НачальноеСальдо
ТОГДА подз.НачальноеСальдо
ИНАЧЕ подз.СуммаОплаты
КОНЕЦ КАК суммаЗачета,
подз.НачальноеСальдо
ПОМЕСТИТЬ ВТ_ЗачитывающиеОплаты
ИЗ
(ВЫБРАТЬ
ВТ_Движения.Период КАК Период,
ВТ_Движения.ДоговорКонтрагента КАК ДоговорКонтрагента,
ВТ_Движения.СуммаВзаиморасчетовРасход КАК СуммаОплаты,
ВЫБОР
КОГДА ВТ_Движения.СуммаВзаиморасчетовНачальныйОстаток 0
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_Движения.Период,
ВТ_Движения.ДоговорКонтрагента,
ВТ_Движения.СуммаВзаиморасчетовНачальныйОстаток,
ВТ_Движения.СуммаВзаиморасчетовНачальныйОстаток
ИЗ
ВТ_ДвиженияПоДням КАК ВТ_Движения
ГДЕ
ВТ_Движения.СуммаВзаиморасчетовНачальныйОстаток > 0
И ВТ_Движения.Период = &ТекущаяДата) КАК подз
ГДЕ
ВЫБОР
КОГДА подз.СуммаОплаты > подз.НачальноеСальдо
ТОГДА подз.НачальноеСальдо
ИНАЧЕ подз.СуммаОплаты
КОНЕЦ > 0
;
//////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_РеализацииПоДоговоруВЦелом.Регистратор,
ВТ_РеализацииПоДоговоруВЦелом.Период,
ВТ_РеализацииПоДоговоруВЦелом.ДоговорКонтрагента,
ВТ_РеализацииПоДоговоруВЦелом.СуммаОтгрузки,
ВТ_ЗачитывающиеОплаты.суммаЗачета,
ВТ_ЗачитывающиеОплаты.Период КАК ПериодОплаты
ПОМЕСТИТЬ ВТ_ОтгрузкиДоОплаты
ИЗ
ВТ_РеализацииПоДоговоруВЦелом КАК ВТ_РеализацииПоДоговоруВЦелом
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ЗачитывающиеОплаты КАК ВТ_ЗачитывающиеОплаты
ПО ВТ_РеализацииПоДоговоруВЦелом.ДоговорКонтрагента = ВТ_ЗачитывающиеОплаты.ДоговорКонтрагента
И ВТ_РеализацииПоДоговоруВЦелом.Период подз.суммаЗачета — (подз.СуммаОтгрузкиСледующих — подз.СуммаОтгрузкиТекущего)
ТОГДА подз.суммаЗачета — (подз.СуммаОтгрузкиСледующих — подз.СуммаОтгрузкиТекущего)
ИНАЧЕ подз.СуммаОтгрузкиТекущего
КОНЕЦ КАК СуммаЗачетаТекущего
ИЗ
(ВЫБРАТЬ
ВТ_ОтгрузкиДоОплаты.ПериодОплаты КАК ПериодОплаты,
СУММА(ВТ_ОтгрузкиДоОплаты1.СуммаОтгрузки) КАК СуммаОтгрузкиСледующих,
ВТ_ОтгрузкиДоОплаты.Регистратор КАК ДокументОТгрузки,
ВТ_ОтгрузкиДоОплаты.суммаЗачета КАК суммаЗачета,
ВТ_ОтгрузкиДоОплаты.СуммаОтгрузки КАК СуммаОтгрузкиТекущего,
ВТ_ОтгрузкиДоОплаты.Период КАК ДатаОтгрузки
ИЗ
ВТ_ОтгрузкиДоОплаты КАК ВТ_ОтгрузкиДоОплаты
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтгрузкиДоОплаты КАК ВТ_ОтгрузкиДоОплаты1
ПО ВТ_ОтгрузкиДоОплаты.ПериодОплаты = ВТ_ОтгрузкиДоОплаты1.ПериодОплаты
И ВТ_ОтгрузкиДоОплаты.Период <= ВТ_ОтгрузкиДоОплаты1.Период
СГРУППИРОВАТЬ ПО
ВТ_ОтгрузкиДоОплаты.Период,
ВТ_ОтгрузкиДоОплаты.Регистратор,
ВТ_ОтгрузкиДоОплаты.ПериодОплаты,
ВТ_ОтгрузкиДоОплаты.суммаЗачета,
ВТ_ОтгрузкиДоОплаты.СуммаОтгрузки
ИМЕЮЩИЕ
СУММА(ВТ_ОтгрузкиДоОплаты1.СуммаОтгрузки) — ВТ_ОтгрузкиДоОплаты.СуммаОтгрузки < ВТ_ОтгрузкиДоОплаты.суммаЗачета) КАК подз
…
(текст комментария доступен только участникам Мастер-группы)
В запросе соединение ВТ сама с собой с нарастающим итогом. Но теряется тогда 3 строка, где Дата оплаты NULL. Как ее вывести?
…
(текст комментария доступен только участникам Мастер-группы)
Видимо, при редактировании комментария что-то съехало.
текст запроса в приложенном файле, не могу найти ошибку в запросе.
…
(текст комментария доступен только участникам Мастер-группы)
Переделала немного вывод в последней таблице, чтобы видеть, как происходит нарастающий итог.
Получила результат (в приложенном файле). Чтобы посчитать количество дней между датами оплаты, нужно будет поместить последнюю таблицу в ВТ и соединить саму с собой со смещением? Или есть другой вариант как можно получить эти данные?
…
(текст комментария доступен только участникам Мастер-группы)
Соедининение таблицы сама с собой:
ВЫБРАТЬ
ВТ_НарастающийИтог.ДатаОплаты,
МАКСИМУМ(ВТ_НарастающийИтог1.ДатаОплаты) КАК ДатаОплатыПред,
ВТ_НарастающийИтог.ДатаОтгрузки,
ВТ_НарастающийИтог.СуммаВзаиморасчетовКонечныйОстаток,
ВТ_НарастающийИтог.СуммаВзаиморасчетовРасход,
ВТ_НарастающийИтог.СуммаРасходНарастающийИтог
ИЗ
ВТ_НарастающийИтог КАК ВТ_НарастающийИтог
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_НарастающийИтог КАК ВТ_НарастающийИтог1
ПО ВТ_НарастающийИтог.Регистратор = ВТ_НарастающийИтог1.Регистратор
И ВТ_НарастающийИтог.ДатаОплаты > ВТ_НарастающийИтог1.ДатаОплаты
СГРУППИРОВАТЬ ПО
ВТ_НарастающийИтог.ДатаОплаты,
ВТ_НарастающийИтог.ДатаОтгрузки,
ВТ_НарастающийИтог.СуммаВзаиморасчетовКонечныйОстаток,
ВТ_НарастающийИтог.СуммаВзаиморасчетовРасход,
ВТ_НарастающийИтог.СуммаРасходНарастающийИтог
==============================================
Я в итоге получаю таблицу с двумя строками. Что собственно правильно. Как далее написать запрос, чтобы к имеющейся таблице присоединить интервал между датой отгрузки и 1 датой оплаты? В приложении 3 картинки: результат до объединения, после и что нужно получить.
Покрутила запрос, получила нужный результат след.образом:
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_НарастающийИтог.Регистратор,
ВТ_НарастающийИтог.ДатаОплаты,
МАКСИМУМ(ВТ_НарастающийИтог1.ДатаОплаты) КАК ДатаОплатыПред,
ВТ_НарастающийИтог.ДатаОтгрузки КАК ДатаОтгрузки,
ВТ_НарастающийИтог.СуммаВзаиморасчетовКонечныйОстаток,
ВТ_НарастающийИтог.СуммаВзаиморасчетовРасход,
ВТ_НарастающийИтог.СуммаРасходНарастающийИтог,
ВТ_НарастающийИтог.ДоговорКонтрагента
ПОМЕСТИТЬ ВТ_ПредДатаОплаты
ИЗ
ВТ_НарастающийИтог КАК ВТ_НарастающийИтог
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_НарастающийИтог КАК ВТ_НарастающийИтог1
ПО ВТ_НарастающийИтог.Регистратор = ВТ_НарастающийИтог1.Регистратор
И ВТ_НарастающийИтог.ДатаОплаты > ВТ_НарастающийИтог1.ДатаОплаты
СГРУППИРОВАТЬ ПО
ВТ_НарастающийИтог.ДатаОплаты,
ВТ_НарастающийИтог.СуммаВзаиморасчетовКонечныйОстаток,
ВТ_НарастающийИтог.СуммаВзаиморасчетовРасход,
ВТ_НарастающийИтог.СуммаРасходНарастающийИтог,
ВТ_НарастающийИтог.Регистратор,
ВТ_НарастающийИтог.ДатаОтгрузки,
ВТ_НарастающийИтог.ДоговорКонтрагента
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ВТ_НарастающийИтог.Регистратор,
ВТ_НарастающийИтог.ДоговорКонтрагента,
ВТ_НарастающийИтог.ДатаОплаты КАК ДатаОплаты,
ВТ_НарастающийИтог.СуммаВзаиморасчетовКонечныйОстаток,
ВТ_НарастающийИтог.СуммаВзаиморасчетовРасход,
ВТ_НарастающийИтог.СуммаРасходНарастающийИтог,
ВТ_НарастающийИтог.ДатаОтгрузки,
ВТ_НарастающийИтог.ДатаОтгрузки КАК ДатаОплатыПред
ПОМЕСТИТЬ ВТ_ПериодМеждуОтгрузкойИПервойОплатой
ИЗ
ВТ_НарастающийИтог КАК ВТ_НарастающийИтог
УПОРЯДОЧИТЬ ПО
ДатаОплаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ПредДатаОплаты.Регистратор КАК Регистратор,
ВТ_ПредДатаОплаты.ДоговорКонтрагента КАК ДоговорКонтрагента,
ВТ_ПредДатаОплаты.ДатаОплаты КАК ДатаОплаты,
ВТ_ПредДатаОплаты.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
ВТ_ПредДатаОплаты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход,
ВТ_ПредДатаОплаты.СуммаРасходНарастающийИтог КАК СуммаРасходНарастающийИтог,
ВТ_ПредДатаОплаты.ДатаОтгрузки КАК ДатаОтгрузки,
ВТ_ПредДатаОплаты.ДатаОплатыПред КАК ДатаОплатыПред,
РАЗНОСТЬДАТ(ВТ_ПредДатаОплаты.ДатаОплатыПред, ВТ_ПредДатаОплаты.ДатаОплаты, ДЕНЬ) КАК КолвоДней
ИЗ
ВТ_ПредДатаОплаты КАК ВТ_ПредДатаОплаты
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_ПериодМеждуОтгрузкойИПервойОплатой.Регистратор,
ВТ_ПериодМеждуОтгрузкойИПервойОплатой.ДоговорКонтрагента,
ВТ_ПериодМеждуОтгрузкойИПервойОплатой.ДатаОплаты,
ВТ_ПериодМеждуОтгрузкойИПервойОплатой.СуммаВзаиморасчетовКонечныйОстаток,
ВТ_ПериодМеждуОтгрузкойИПервойОплатой.СуммаВзаиморасчетовРасход,
ВТ_ПериодМеждуОтгрузкойИПервойОплатой.СуммаРасходНарастающийИтог,
ВТ_ПериодМеждуОтгрузкойИПервойОплатой.ДатаОтгрузки,
ВТ_ПериодМеждуОтгрузкойИПервойОплатой.ДатаОплатыПред,
РАЗНОСТЬДАТ(ВТ_ПериодМеждуОтгрузкойИПервойОплатой.ДатаОплатыПред, ВТ_ПериодМеждуОтгрузкойИПервойОплатой.ДатаОплаты, ДЕНЬ)
ИЗ
ВТ_ПериодМеждуОтгрузкойИПервойОплатой КАК ВТ_ПериодМеждуОтгрузкойИПервойОплатой
===============================================
Можно данное решение считать верным и оптимальным?
Если убрать отбор по договору контрагента, то присоединенная строка (интервал между датой отгрузки и первой датой оплаты) пропадает из результата запроса.
И вопрос по объединению таблицы самой с собой: насколько замедляется выполнение запроса при работе с большими таблицами?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
При нажатии на кнопку «показывать план выполнения запроса» выдается окно с сообщением «Ошибка создания конфигурационного файла в каталоге c:\Program Files\1cv8\conf Проверьте права доступа».
И план не открывается.
Чем вызвана ошибка?
Что нужно сделать, чтобы открыть план?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо!
Получилось
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Только начинаю учиться, подскажите: в электронном учебнике «Разработка и оптимизация запросов в 1С» на стр.14 верхний абзац приведен пример «Выборка элементов справочника «Контрагенты», относящиеся к указанному региону». Там описывается метод Выбрать() объекта типа СправочникМенеджер.Контрагенты. У этого метода третий параметр — Отбор, в который передается структура, ключ которой описывает имя поля,значение структуры — значение отбора по этому полю. Далее приведен пример:
Отбор = Новый Структура («Регион», Регион).
Вопрос: я правильно понимаю что «Регион» — это название реквизита справочника, а Регион — это название региона, типа Москва? Т.е. такая формулировка для структуры будет правильной?
Отбор = Новый Структура («Регион», Москва).
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день.
Имеется регистр бухгалтерии с тремя субконто, один из них номенклатура.
При роботе с регистрами бухгалтерии и формировании выборки по одному субконто, например, субконто1 = &Номенклатура. Но в регистре конфигурации наша номенклатура может находится и в колонке субконто2 и субконто3. Благо что только в одной из колонок.
Вопрос, почему при записи платформа не делает анализ и не записывает номенклатуру только в субконто1?
Как лучше поступать при формировании запросов, если данная ситуация уже в конфигурации существует, из-за сопровождения конфигурации разными фирмами?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо.
Добрый день.
Необходимо организовать регулярную выгрузку нужных данных из 1С в SQL-хранилище. Если для этих целей создам в штатной конфигурации свой План обмена, верно ли будет это утверждение: «_SeqChngR – таблица регистрации изменений последовательности. Создается для каждой последовательности, которая участвует хотя бы в одном плане обмена.» (стр. 19) и «_AccumRgChngR – таблица регистрации изменений регистра накопления. Создается, если регистр накопления участвует хотя бы в одном плане обмена.» (стр. 21)? Не нужно будет дополнительно создавать отдельный регистр, в который будут записываться изменения для этого нового нештатного Плана обмена?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Василий, подскажите, пробовали ли вы работать через внешние источники данных с базами на FireBirdSQL? Насколько 1С «дружит» с этой СУБД?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день.
Какая последовательность выполнения запроса при левом соединении? Сначала получается выборка по правой таблице и строки идут в условия для левой?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте.
1. Подскажите пож-та есть ли возможность выгрузить именно идентификаторы ссылок («0а68-…»)?
2. Почему штатно не реализован механизм простановки «,» для удобства с новой строки
fld1
//, fld2
, fld3
Очевидно же что удалить (закомментировать) такую строку проще, чем еще удалять концевую запятую с предыдущей строки
…
(текст комментария доступен только участникам Мастер-группы)
по п.1: имеем запрос «Выбрать Ссылка Из справочник.Товары»
При обходе ТЗ хотелось бы видеть не представление ссылки, а именно ГУИД для последующей связки со стороннй системой. Это реально?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Вопрос по объектному доступу к данным. Как правильно прочитать данные и присвоить их в табличную часть формы. Пытался сделать вот так но 1с сообщает «Переменная не определена»
Процедура ТабличнаяЧасть1ПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТабличнойЧасти = Элементы.ТабличнаяЧасть1.ТекущиеДанные;
СпрСсылка = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(«кг»);
СтрокаТабличнойЧасти.Единицы =СпрСсылка.Ссылка;
КонецПроцедуры
столбец табличной части имеет тип данных «СправочникСсылка.КлассификаторЕдиницИзмерения» задача в том чтобы по умолчанию всегда подставлялись кг.
…
(текст комментария доступен только участникам Мастер-группы)
Большое спасибо за помощь. вчера пробовал решить туже задачу но с помощью запроса видимо проблемы были с тем же самым пытался присвоить
ПрСсылка = Выборка.Ссылка;
СтрокаТабличнойЧасти.Единицы =ПрСсылка;
и всё это на сервере.
А можно пример передачи выбранного элемента справочника в функцию на сервере. к примеру если понадобится подставлять единицу измерения в зависимости от выбранной номенклатуры. в интеренете предлагают передавать на сервер толи номер строки табличной части толи её идентификатор но насколько понимаю сервер ничего не знает вообще о табличных частях документа. прошу прощение всё-таки обсуждаемый вопрос не очень по теме.
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте, у меня вопрос по Null. Если в запросе поле имеет значение Null, есть ли способ его заменить на другое значение
Такой запрос: ВЫБРАТЬ
ВЫБОР
КОГДА ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств = ЗНАЧЕНИЕ(Перечисление.ВидыДенежныхСредств.Наличные)
ТОГДА НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.ДокументДвижения.Дата, ДЕНЬ)
ИНАЧЕ НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.ДокументДвижения.ДатаОплаты, ДЕНЬ)
КОНЕЦ КАК ДатаПлатежа,
ЕСТЬNULL(Хозрасчетный.СчетДт.Родитель, 0) КАК КоррСчет,
ДвиженияДенежныхСредствОбороты.ДокументДвижения.Подразделение.Наименование КАК Подразделение,
ВЫБОР
КОГДА ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств = ЗНАЧЕНИЕ(Перечисление.ВидыДенежныхСредств.Наличные)
ТОГДА «Касса » + ДвиженияДенежныхСредствОбороты.Организация.Наименование
ИНАЧЕ ДвиженияДенежныхСредствОбороты.БанковскийСчетКасса.Наименование
КОНЕЦ КАК Банк,
ДвиженияДенежныхСредствОбороты.Контрагент.Наименование КАК Контрагент,
ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента.Наименование КАК Договор,
Хозрасчетный.Сумма КАК Сумма,
ДвиженияДенежныхСредствОбороты.ДокументДвижения.НазначениеПлатежа КАК НазначениеПлатежа,
ДвиженияДенежныхСредствОбороты.ДокументДвижения.Номер КАК Номер_пп,
НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.ДокументДвижения.Дата, ДЕНЬ) КАК Дата_пп,
&НДС,
ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств.КодДДС.Наименование КАК КодДДС,
ДвиженияДенежныхСредствОбороты.ДокументДвижения,
ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств КАК ВидДенежныхСредств,
ДвиженияДенежныхСредствОбороты.ДокументДвижения.ВидОперации КАК ВидОперации,
ДвиженияДенежныхСредствОбороты.Организация КАК Организация
ИЗ
РегистрНакопления.ДвиженияДенежныхСредств.Обороты(
&ДатаНач,
&ДатаКон,
,
ВидДенежныхСредств В (&Вид)
И (&Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ИЛИ Организация В (&Организация))
И ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)) КАК ДвиженияДенежныхСредствОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ПО ДвиженияДенежныхСредствОбороты.ДокументДвижения = Хозрасчетный.Регистратор
ГДЕ
Хозрасчетный.СчетДт ЗНАЧЕНИЕ(Плансчетов.Хозрасчетный.ПереводыВПути)
Как заменить в нем пустое значение счета?
…
(текст комментария доступен только участникам Мастер-группы)
Есть необходимость раз в день переносить регистр остатков в другую систему. Размер получаемых данных составляет несколько гигабайт. Можно ли ускорить этот процесс, если использовать не запросы 1С, а средства самой СУБД?
…
(текст комментария доступен только участникам Мастер-группы)
Здравтвуйте, у меня вопрос по работе с датой.
Пытаюсь вывести сумму документов и контрагента так как тренируюсь на копии рабочий базы решил ограничить выборку датой в один день. Проблема в том что если я задаю дату 09.12.2014 0.00.00 выводится данные одного документа такой с датой 09.12.2014 0.00.00, при этом документы со временем отличным от 0.00.00 игнорируются. Пытался использовать ПОДОБНО но консоль запросов в таком случае просто удаляет строку ГДЕ. В консоли запросов выполняю следующий запрос
ВЫБРАТЬ
РеализацияТоваровУслуг.СуммаДокумента,
РеализацияТоваровУслуг.Контрагент.Наименование,
РеализацияТоваровУслуг.Контрагент
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Дата = &Дата
Заметил что форматы времени в конслоли и БД разные конслоь 0.00.00 Бд 00.00.00. Экспериментирую в версии 3.0.36.17
Вопрос может быть не потеме, есть ли в 8.3 возможность настроить вывод таблиц отчетов и запросов с зафиксированным столбцом, когда один столбец к примеру наименование остается на месте а остальные можно просматривать горизонтальной прокруткой.
…
(текст комментария доступен только участникам Мастер-группы)
Большое спасибо за ответ, правда у меня первый вариант сработал также со временем 0.00
Добрый день! Два вопроса.
1) Имеем две временные таблицы. В первой поля индексированы, во второй — нет. Связываем их. Оптимизатор СУБД может принять решение о переборе строк обоих таблиц или только той, где поля не индексированы?
2) Заметил что время, потраченное при повторном выполнении одного и того же запроса, различается — используется механизм кэширования. Кэширование проходит только на уровне СУБД или сервер 1С тоже кэширует данные, полученные при выполнении запросов? И какие команды на уровне СУБД помимо очистки кэша планов запросов(который DBCC FREEPROCCACHE) позволят очистить буфер с кэшем? Очистка tempdb?
…
(текст комментария доступен только участникам Мастер-группы)
У меня консоли запросов, при использовании конструктора запросов на закладке «Условия» только 1 колонка, как сделать, чтобы было 3 как в уроках?
…
(текст комментария доступен только участникам Мастер-группы)
высылаю принскрин. 3 колонки не появляются, сразу получается произвольное выражение
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день! Тоже столкнулась с таким отображением условий и ещё неудобно настраиваются связи между таблицами. Подскажите как запустить в режиме Толстый клиент(управляемое приложение)?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте, в одном из видеоуроков был запрос к табличной части документа Реализация товаров в связке к регистру сведений Цены номенклатуры. Делаю аналогичный запрос на своей рабочей базе УПП 1.3. только к документу перемещение товаров, но почему-то не выводится номенклатура, у которой нет цен в регистре, в чем причина? Вот текст моего запроса:
Запрос.Текст =
«ВЫБРАТЬ
| ПеремещениеТоваровТовары.Номенклатура,
| ПеремещениеТоваровТовары.Количество,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Поле1,
| ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры
|ИЗ
| Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаЦены, ) КАК ЦеныНоменклатурыСрезПоследних
| ПО ПеремещениеТоваровТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
| И ПеремещениеТоваровТовары.Ссылка = &Ссылка»;
Запрос.УстановитьПараметр(«ТипЦен», Справочники.ТипыЦенНоменклатуры.НайтиПоКоду(«00002»));
Запрос.УстановитьПараметр(«ДатаЦены», ВыбДокумент.Дата);
Запрос.УстановитьПараметр(«Ссылка», ВыбДокумент);
Результат = Запрос.Выполнить();
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день.
Вопросы по отображению плана выполнения запроса:
1) План выполнения запроса зависит от вида СУБД на которой развернута информационная база 1С — будет показан запрос на языке того или иного СУБД?
2) Если база файловая — говорят что платформа в этом случае «симулирует» клиент-серверное взаимодействие — показывается язык запросов встроенного в платформу СУБД?
3) Скачанная консоль запросов с сайта ИТС сообщает что показ плана выполнения возможен при работе на ОС семейства Windows. У меня бывают такие ситуации — клиентская часть 1С работает под управлением ОС семейства Windows, а серверная часть 1С работает под управлением ОС семейства Linux, как быть в этом случае?
Возможно ли в этой ситуации просмотреть план выполнения запроса?
Возможно ли просмотреть план выполнения запроса когда и клиентская и серверная часть 1С:8.3 работают
под управлением ОС семейства Linux?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день! У меня тоже вопрос о таблице итогов регистра накопления.
На днях столкнулась с такой проблемой: нужно было получить помесячную статистику, динамику числа договоров с положительной задолженностью. Я выбрала виртуальную таблицу «ОстаткиИОбороты» с периодичностью Месяц и сгруппировала по Периодам с отбором СуммаКонечныйОстаток > 0. Запрос примерно такого вида (нет под рукой реальной базы):
ВЫБРАТЬ
РегОстаткиИОбороты.Период,
КОЛИЧЕСТВО(РегОстаткиИОбороты.Договор) КАК Договор
ИЗ
РегистрНакопления.Рег.ОстаткиИОбороты(&Дата1, &Дата2, Месяц, , ) КАК РегОстаткиИОбороты
СГРУППИРОВАТЬ ПО РегОстаткиИОбороты.Период
ИМЕЮЩИЕ СУММА(РегОстаткиИОбороты.СуммаКонечныйОстаток) > 0
На начало и конец периода результат оказался правильным, а промежуточные результаты оказались заниженными. Проверка показала, что промежуточные выборки вообще не содержат договоров, по которым не было оборотов в соответствующем месяце, хотя остаток на конец месяца положительный (равный остатку на начало).
Это так и задумано — или я что-то не так делала?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Чтобы комментарий не вышел слишком длинный, поместила подробности в файлы. На картинке видны «дырки» в промежуточной выборке, если у дела не было оборотов.
…
(текст комментария доступен только участникам Мастер-группы)
Текстовый файл почему-то не читается, приложила его же в Ворде
Скажите, пожалуйста, каким образом хранятся внешние печатные формы, которые подключаются к документам в типовых конфигурациях?
Например, в УПП — Обычное приложение и в БП 3.0 — Управляемое приложение.
В лекциях курса не нашла.
…
(текст комментария доступен только участникам Мастер-группы)
Про справочники и реквизиты я знаю.
Я про взаимосвязь с SQL.
…
(текст комментария доступен только участникам Мастер-группы)
Я правильно понимаю, что не существует конкретной таблицы SQL-сервера с фиксированным названием (аналогично другим объектам конфигурации – справочникам, константам и т.д.), в которой хранятся файлы внешних печатных форм?
…
(текст комментария доступен только участникам Мастер-группы)
«Значения типа типа IMAGE хранятся вне строки с данными самой таблицы. В строке содержатся только текстовые указатели на значения.»
«…Это поле в таблице базы данных MS SQL Server имеет тип IMAGE.»
Вот я и спрашиваю — имеет ли это поле отдельную таблицу в базе данных MS SQL Server со своим именем, раз данные типа IMAGE хранятся вне данных таблицы справочника (таблица которого имеет свое имя _Reference), у которого есть реквизит типа ХранилищеЗначений.
Или все-таки такой отдельной таблицы не существует.
…
(текст комментария доступен только участникам Мастер-группы)
Подскажите, пожалуйста, с помощью какой программы можно увидеть
таблицу соответствия, (как у Вас в примере),
«Объект метаданных» — «Колонка в базе данных» — «Значение поля элемента справочника»
Спасибо заранеe.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Вы рассказали про устройство регистра накопления — оказывается он в БД хранится в виде двух таблиц — движений и промежуточных итогов помесячно. А можете вкратце рассказать про устройство регистров бухгалтерии? По идее там то же самое, но не совсем понятно как быть с субконто — по идее можно хранить как в кач-ве реквизитов в таблице движений, но судя по тому, что в консоли запросов «основная» таблица Хозрасчётный субконто не содержит — в базе они вынесены в отдельную таблицу. Было бы очень интересно.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Возник вопрос с подключением через внешнее соединение к DBF (Парус 7), а точнее проблема с кодировкой (см.скриншот).
Как ее можно исправить?
Если ВнешниеИсточникиДанных.ВнешнийИсточникДанных1.ПолучитьСостояние() = СостояниеВнешнегоИсточникаДанных.Отключен Тогда
Параметры = ВнешниеИсточникиДанных.ВнешнийИсточникДанных1.ПолучитьОбщиеПараметрыСоединения();
Параметры.СтрокаСоединения = «Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=D:\DOCUMENTS\DOCUMENTS\КЛИЕНТЫ\Экология\Зарпл\SAVE;»;
ВнешниеИсточникиДанных.ВнешнийИсточникДанных1.УстановитьОбщиеПараметрыСоединения(Параметры);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ACCBASE.RN,
| ACCBASE.PARENT_RN,
| ACCBASE.ACCOUNT,
| ACCBASE.NAME_ACC,
| ACCBASE.L_BALANCE,
| ACCBASE.L_CURRENCY,
| ACCBASE.L_TAX,
| ACCBASE.LNOTEMPTA5
|ИЗ
| ВнешнийИсточникДанных.ВнешнийИсточникДанных1.Таблица.ACCBASE КАК ACCBASE»;
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Таб = Результат.Выгрузить();
ЭлементыФормы.ТабличноеПоле1.Значение = Таб.Скопировать();
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
ЭтаФорма.Обновить();
…
(текст комментария доступен только участникам Мастер-группы)
Доброго времени суток!
На странице 31 есть следующий абзац: «Также нужно помнить, что согласно лицензионному соглашению можно обращаться к данным информационной базы только при помощи объектов «1С:Предприятие 8», специально предназначенных для работы с данными (запросы, справочники, документы и т.д.). Нельзя обращаться к данным информационной базы напрямую, минуя уровень объектов работы с данными «1С:Предприятие 8», например, при помощи средств СУБД или при помощи внешних компонент, которые реализуют прямой доступ к СУБД.»
Пожалуйста, поясните на примере — что нельзя делать?
…
(текст комментария доступен только участникам Мастер-группы)
фраза «согласно лицензионному соглашению» содержит юридический аспект или технический (нельзя добавить, удалить или изменить конкретную запись непосредственно в БД)?
…
(текст комментария доступен только участникам Мастер-группы)
спасибо
Добрый день, в методичке на странице 25 говорится об условиях использования итоговой таблицы регистра сведений, в частности в 4ом и 5ом условии говорится о каких-то разделителях. что это такое , приведите, пожалуйста, пример.
…
(текст комментария доступен только участникам Мастер-группы)
спасибо, а как его передать в условие запроса?
…
(текст комментария доступен только участникам Мастер-группы)
А можете рассказать как работать с журналом регистрации с помощью внешних источников данных?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день, в модуле объектов (например документа) при обращения к значению свойств эффективней использовать запрос или обращение через точку?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
В первой части методички говорилось о внешних источниках данных…
А не могли бы Вы помочь с подключением ко внешнему источнику данных? (хочется попробовать написать запрос именно к нему)
Поискал информацию в интернете, но подключиться не удалось…
Строка подключения выглядит так:
Driver=(Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb));DBQ=D:\Тест.xlsx
Вываливается ошибка:
Ошибка ODBC. SQLSTATE: IM002
Номер ошибки: 0
Описание: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
P.S.: База локальная, 1С:Предприятие 8.3 (8.3.5.1119), Office установлен, а также драйверы ODBC (см. скриншот)
…
(текст комментария доступен только участникам Мастер-группы)
выдает вот такую ошибку при нажатии кнопки Далее после выбора драйвера (см. вложение)
до этого было то же самое
пробовал и xls и xlsx
…
(текст комментария доступен только участникам Мастер-группы)
Помогло, спасибо
Добрый день.
Скажите пожалуйста подключаемая внешняя таблица создается только для чтения или в ней из 1С можно изменять(добавлять) данные.
Подключил екселевскую таблицу к 1С, дал на нее полные права. 1С дает изменить(добавить) данные в эту таблицу, но при сохранении выдает ошибку.
…
(текст комментария доступен только участникам Мастер-группы)
Большое спасибо.
Заработало:)
Здравствуйте. Пытаюсь проделать тот же трюк на Windows 7 x64, Excel 2010, Платформа 8.3.5.1383. При нажатии на кнопку ОК поле «Таблицы и поля в источнике данных» остается пустым, ошибок никаких. При чем если файл убрать с диска ошибки всё равно не будет. Не пойму в чем дело. Можете прикрепить в ответе свой файл 1.xls?
…
(текст комментария доступен только участникам Мастер-группы)
С вашим файлом работает, значит мой способ выделения таблицы для последующего именования не подходит.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый вечер. Небольшой вопрос по ключевому слову РАЗРЕШЕННЫЕ. Если у меня пакетный запрос, т.е. по факту набор разных запросов — для каждого из них необходимо это слово? Мне кажется, что да, но где-то слышал (могу ошибаться), что его достаточно указывать только в самом первом запросе.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый (уже) вечер. Стр.24 — «В платформе 8.3.1 для периодического регистра сведений в базе данных появилась новая таблица – физическая таблица итогов (по аналогии с таблицей итогов регистра накопления)». Вопрос — но ведь у регистра сведений нет свойства Вид регистра, где указывается: Остатки; Обороты?
…
(текст комментария доступен только участникам Мастер-группы)
При этом итоги поддерживаются именно платформой 8.3 независимо от того, какой режим совместимости выставлен, я так понимаю. Поставил режим совместимости 8.2.13, но с отмеченными «Разрешить итоги: срез первых / срез последних», в Management Studio все равно видно таблицы _InfoRgSF24 и _InfoRgSL25. Видимо, если к этой базе подключиться версией 8.2, то таблицы будут просто проигнорированы 1С.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день
В методическом пособии указано, что все значения констант хранятся в одной таблице. Но ведь это не совсем правда. С версии 8.2.14 каждая константа хранится уже в отдельной таблице
…
(текст комментария доступен только участникам Мастер-группы)
Рассказано сумбурно. Абзац про изменения в версиях на стр24-25 нужно переформулировать «почеловечески».
И зачем тогда на стр.18 указан не актуальный для текущих версий порядок именования таблиц для констант?
…
(текст комментария доступен только участникам Мастер-группы)
Методический материал. Стр. 27.
«Как отмечалось ранее, для регистра накопления в базе присутствует таблица движений (записей) и таблица итогов. Платформа сначала получает текущие остатки регистра (остатки на текущую дату), которые хранятся в таблице итогов на дату 01.11.3999 00:00:00, затем корректирует эти остатки в соответствии с записями из таблицы движений за период с даты получения остатков по дату текущих остатков.»
Здесь идет речь про формирование виртуальных таблиц регистров накопления. Вопрос: для чего система корректирует текущие остатки по регистру накопления в соответствии с таблицами движений? Т.е., не понятно, причем здесь таблица движений, если остатки уже получены. Как таблица движений участвует в процессе получения остатков?
…
(текст комментария доступен только участникам Мастер-группы)
Таблица итогов хранит остатки не только на «конец времен», но и на начало каждого месяца.Таким образом, если нам нужны остатки на конкретную дату, из таблицы итогов берётся итог, рассчитанный на ближайшую дату, которая больше или равна дате, на которую получаются остатки (такая дата точно есть, как минимум это 01.11.3999 00:00:00). Если дата, на которую получаются остатки совпадает с датой в таблице итогов, то возвращается результат, иначе берётся таблица движений от даты, на которую получаются остатки до даты итогов, и высчитываются итоги на указанную дату простым суммированием(вычитанием) движений из полученного итога.
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо! Теперь все понятно!
Насколько мне известно (возможно и ошибаюсь), система всегда берёт не «ближайшее», а именно «более позднее» и соответственно всегда только «вычитает» движения из взятого за базу итога.
Т.е. если вам нужно итоги на 2-е сентября и у вас есть рас читанные итоги и на 1. сентября и на 1 октября, то система всегда берёт итоги на 1 октября и вычитает из них движения со 3-го сентября по 1 октября.
Система никогда не занимается «выбором» (то ли складывать, то ли вычитать), алгоритм жестко зашит именно только на «вычитание», даже в ущерб эффективности.
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо!