Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Форум

Развернуть все [Прочее] 1С:Предпоиятие 8.1 - в реестре документов при выборе даты ошибка
Людо4ка
Пост №1
Людо4ка
читатель
офлайн
Дата регистрации: 12.08.2009
Сообщений: 23
Пост №1
 
18.08.2009 09:34

"{Отчет.РеестрДокументов.Форма.ФормаЗаполнения(769)}: Ошибка при вызове метода контекста (Выполнить): {(28, 2)}: Ожидается выражение ")"
<>ГДЕ
Запрос.Выполнить();


Если не выбирать дату - формирует отчет. Если назначить какую-нибудь дату - ошибка
Куда я только не ставила эту скобку :( бесполезно. Что я делаю не так?



Процедура ФормированиеЗапросаДобавитьДокумент(Запрос, МетаданныеДокумента, ВидДокумента, МассивСвойств, ФлагЕстьУсловия)

Если НЕ ВРЕГ(ВидДокумента) =ВРЕГ("ЗаказПокупателя") Тогда

Запрос.Текст = Запрос.Текст + "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|      Док.Ссылка,
|      Док.Дата,
|      Док.Номер,
|      """"" + МетаданныеДокумента.Представление() + """"" КАК ВидДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("ВидОперации", МетаданныеДокумента), "Док.ВидОперации", "NULL") + " КАК ВидОперации,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", МетаданныеДокумента), "Док.Организация", "NULL") + " КАК Организация,
|      ";
Если ОбщегоНазначения.ЕстьРеквизитДокумента("СкладОрдер", МетаданныеДокумента) Тогда
       ИмяРеквизитаСклад = "СкладОрдер";
Иначе
       ИмяРеквизитаСклад = "Склад";
КонецЕсли;
Запрос.Текст = Запрос.Текст + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Контрагент", МетаданныеДокумента), "Док.Контрагент", "NULL") + " КАК Контрагент,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента(ИмяРеквизитаСклад, МетаданныеДокумента), "Док."+ИмяРеквизитаСклад, "NULL") + " КАК Склад,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("СуммаДокумента", МетаданныеДокумента), "Док.СуммаДокумента", "NULL") + " КАК СуммаДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("ВалютаДокумента", МетаданныеДокумента), "Док.ВалютаДокумента", "NULL") + " КАК ВалютаДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Ответственный", МетаданныеДокумента), "Док.Ответственный", "NULL") + " КАК Ответственный ,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Количество", МетаданныеДокумента), "Док.Количество", "NULL") + " КАК Количество
|";
             Запрос.Текст = Запрос.Текст + " ИЗ
|      Документ." + ВидДокумента + " КАК Док
|";

Иначе

Запрос.Текст = Запрос.Текст + "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|      Док.Ссылка,
|      Док.Дата,
|      Док.Номер,
|      """"" + МетаданныеДокумента.Представление() + """"" КАК ВидДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("ВидОперации", МетаданныеДокумента), "Док.ВидОперации", "NULL") + " КАК ВидОперации,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", МетаданныеДокумента), "Док.Организация", "NULL") + " КАК Организация,
|      ";
Если ОбщегоНазначения.ЕстьРеквизитДокумента("СкладОрдер", МетаданныеДокумента) Тогда
       ИмяРеквизитаСклад = "СкладОрдер";
Иначе
       ИмяРеквизитаСклад = "Склад";
КонецЕсли;
Запрос.Текст = Запрос.Текст + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Контрагент", МетаданныеДокумента), "Док.Контрагент", "NULL") + " КАК Контрагент,
      |      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента(ИмяРеквизитаСклад, МетаданныеДокумента), "Док."+ИмяРеквизитаСклад, "NULL") + " КАК Склад,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("СуммаДокумента", МетаданныеДокумента), "Док.СуммаДокумента", "NULL") + " КАК СуммаДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("ВалютаДокумента", МетаданныеДокумента), "Док.ВалютаДокумента", "NULL") + " КАК ВалютаДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Ответственный", МетаданныеДокумента), "Док.Ответственный", "NULL") + " КАК Ответственный ,
|Сумма (ТабЧасть.Количество) Как Количество
|";
Запрос.Текст = Запрос.Текст + " ИЗ
|      Документ." + ВидДокумента + " КАК Док
|";

Запрос.Текст = Запрос.Текст + " соединение
| Документ.ЗаказПокупателя.Товары как ТабЧасть
| По Док.Ссылка = ТабЧасть.Ссылка
| сгруппировать по
|Док.Ссылка,Док.Номер,Док.Дата, Док.СуммаДокумента,Док.Организация,Док.Контрагент
|";

КонецЕсли;


ФлагЕстьУсловия = Ложь;

Если МассивСвойств.Количество() > 0 Тогда
ДобавитьФильтрыПоСвойствам(Запрос, МассивСвойств);
КонецЕсли;

ЕстьФильтры = ДобавитьФильтрыПоДокументу(Запрос, ВидДокумента, МассивСвойств, ФлагЕстьУсловия);

Если Не ДатаНач = '00010101000000' Тогда
Запрос.Текст = Запрос.Текст + ?(ЕстьФильтры, " И ", " ГДЕ ") + "
|Док.Дата >= &ДатаНач
| ";
ЕстьФильтры = Истина;
КонецЕсли;
Если Не ДатаКон = '00010101000000' Тогда
Запрос.Текст = Запрос.Текст + ?(ЕстьФильтры, " И ", " ГДЕ ") + "
|Док.Дата <= &ДатаКон
| ";
ЕстьФильтры = Истина;
КонецЕсли;


КонецПроцедуры // ФормированиеЗапросаДобавитьДокумент()

// Проверить, нужно ли исключить документ в тексте запроса
//
// Параметры
// МетаданныеДокумента
//
// Возвращаемое значение:
// Булево – Истина - документ нужно исключить, Ложь - нет
//
Функция ИсключитьДокумент(МетаданныеДокумента)
Для Каждого СтрокаОтбораДляПеребора Из Отбор Цикл

Если НЕ СтрокаОтбораДляПеребора.Использование Тогда
Продолжить;
КонецЕсли;

Если НЕ СтрокаОтбораДляПеребора.ИмяОтбора = "ДокументОтчета"
И Не СтрокаОтбораДляПеребора.ИмяОтбора = "Проведен"
И Не СтрокаОтбораДляПеребора.ИмяОтбора = "ПометкаУдаления"
И НЕ СтрокаОтбораДляПеребора.ИмяОтбора = "Категория"
И Найти(СтрокаОтбораДляПеребора.ПредставлениеОтбора, "(свойство документов)") = 0 Тогда
Если СтрокаОтбораДляПеребора.ИмяОтбора = "Склад" Тогда
Если ОбщегоНазначения.ЕстьРеквизитДокумента("СкладОрдер", МетаданныеДокумента) Тогда
ИмяРеквизита = "СкладОрдер";
Иначе
ИмяРеквизита = "Склад";
КонецЕсли;
Иначе
ИмяРеквизита = СтрокаОтбораДляПеребора.ИмяОтбора;
КонецЕсли;
Если НЕ ОбщегоНазначения.ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Возврат Ложь;
КонецФункции // ИсключитьДокумент()

// Добавляет в запрос необходимые виды документов
//
// Параметры:
// Запрос - запрос в который добавляется указанный вид документа
// МассивВидовДокументов - массив содержащий виды документов (строкой) которые надо добавить в запрос
// МассивСвойств - массив свойств документов по которым надо установить фильтр
// СтрКатегорий - строка таблицы фильтров в которой указаны фильтры по категории документов
//
Функция ДобавитьДокументВЗапрос(масЗапросов, МассивВидовДокументов, МассивСвойств, СтрокаОтбора)
Перем ЕстьФильтры;
Перем ФлагЕстьУсловия;

ФлагЕстьКатегории = Не СтрокаОтбора = Неопределено;

текНомерТаблицы = 0;
текЗапрос       = Неопределено;
максТаблиц      = 1;

К1 = -1;
ДобавлятьОкончаниеТекстаЗапроса = Ложь;

Для Каждого ВидДокумента Из МассивВидовДокументов Цикл
//Здесь мы должны понять, не установлен ли фильтр по какому-либо реквизиту, которого нет у документа
//указанного вида. Если установлен, то мы просто не включаем документ в запрос, исключая его из отчета


МетаданныеДокумента = Метаданные.Документы[ВидДокумента];

Если ИсключитьДокумент(МетаданныеДокумента) Тогда
Продолжить;
КонецЕсли;

Если текНомерТаблицы = 0 Тогда
текЗапрос       = Новый Запрос;
масЗапросов.Добавить(текЗапрос);
ФормированиеЗапросаНачало(текЗапрос);
ДобавлятьОкончаниеТекстаЗапроса = Истина;
Иначе
текЗапрос.Текст = текЗапрос.Текст + "
|ОБЪЕДИНИТЬ ВСЕ";
КонецЕсли;
текНомерТаблицы = текНомерТаблицы + 1;

ФормированиеЗапросаДобавитьДокумент(текЗапрос, МетаданныеДокумента, ВидДокумента, МассивСвойств, ФлагЕстьУсловия);

Если текНомерТаблицы = максТаблиц Тогда
текНомерТаблицы = 0;
ФормированиеЗапросаОкончание(текЗапрос, ФлагЕстьКатегории, СтрокаОтбора);
ДобавлятьОкончаниеТекстаЗапроса = Ложь;
КонецЕсли;
КонецЦикла;


Если текЗапрос = Неопределено Тогда
Возврат Ложь;
КонецЕсли;

Если ДобавлятьОкончаниеТекстаЗапроса Тогда
ФормированиеЗапросаОкончание(текЗапрос, ФлагЕстьКатегории, СтрокаОтбора);
КонецЕсли;

Возврат Истина;

КонецФункции // ДобавитьДокументВЗапрос()

// Обработка выбранных документов
//
// Параметры:
// Нет.
//
Процедура ВидОбработкиДокументы() Экспорт
Перем МассивСвойств;
Перем МассивВидовДокументов;
Перем Индекс;
Перем СтрФильтров;
Перем СтрКатегорий;

МассивСвойств = Новый Массив;
СтрКатегорий = Неопределено;

Для Каждого К Из Отбор Цикл

Если НЕ К.Использование Тогда
Продолжить;
КонецЕсли;

СтрФильтров = мТаблицаФильтры.Найти(К.ИмяОтбора, "ИмяПоля");

// На случай если не выбран фильтр
Если СтрФильтров = Неопределено Тогда
Продолжить;
КонецЕсли;

Если Не СтрФильтров.Свойство = Неопределено Тогда
МассивСвойств.Добавить(К);
КонецЕсли;
Если К.ИмяОтбора = "Категория" Тогда
СтрКатегорий = К;
КонецЕсли;

// Проверим на заполненность отбора по виду документа
Если К.ИмяОтбора = "ДокументОтчета" Тогда
Если ТипЗнч(К.ЗначениеОтбора) = Тип("СписокЗначений")
И К.ЗначениеОтбора.Количество()=0 Тогда
Предупреждение("Надо обязательно указать значение отбора для отбора по виду документа!", 60);
Возврат;
Иначе
Если НЕ ЗначениеЗаполнено(К.ЗначениеОтбора) Тогда
Предупреждение("Надо обязательно указать значение отбора для отбора по виду документа!", 60);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;

КонецЦикла;

МассивВидовДокументов = Новый Массив;

Индекс = 0;
СтрокаОтбора = Отбор.Найти("ДокументОтчета", "ИмяОтбора");

Если СтрокаОтбора = Неопределено Тогда
Для Каждого К Из мСписокВидовДокументов Цикл
МассивВидовДокументов.Добавить(К.Значение);
КонецЦикла;
Иначе
Если СтрокаОтбора.Использование Тогда
Если СтрокаОтбора.ВидСравнения = ВидСравнения.НеРавно
ИЛИ СтрокаОтбора.ВидСравнения = ВидСравнения.НеВСписке Тогда

СписокИсключений = Новый СписокЗначений;
Если ТипЗнч(СтрокаОтбора.ЗначениеОтбора) <> Тип("СписокЗначений") Тогда
СписокИсключений.Добавить(СтрокаОтбора.ЗначениеОтбора);
Иначе
Для Каждого К Из СтрокаОтбора.ЗначениеОтбора Цикл
СписокИсключений.Добавить(К.Значение);
КонецЦикла;
КонецЕсли;
Для Каждого К Из мСписокВидовДокументов Цикл
Если СписокИсключений.НайтиПоЗначению(К.Значение) = Неопределено Тогда
МассивВидовДокументов.Добавить(К.Значение);
КонецЕсли;
КонецЦикла;
Иначе
Если ТипЗнч(СтрокаОтбора.ЗначениеОтбора) <> Тип("СписокЗначений") Тогда
МассивВидовДокументов.Добавить(СтрокаОтбора.ЗначениеОтбора);
Иначе
Для Каждого К Из СтрокаОтбора.ЗначениеОтбора Цикл
МассивВидовДокументов.Добавить(К.Значение);
КонецЦикла;
КонецЕсли;
КонецЕсли;
Иначе
Для Каждого К Из мСписокВидовДокументов Цикл
МассивВидовДокументов.Добавить(К.Значение);
КонецЦикла;
КонецЕсли;
КонецЕсли;

масЗапросов = Новый Массив;
Если НЕ ДобавитьДокументВЗапрос(масЗапросов, МассивВидовДокументов, МассивСвойств, СтрКатегорий) Тогда
Предупреждение("Установлены фильтры по реквизитам, которых нет в выбранных видах документов!
|Отчет не может быть сформирован.");
возврат;
КонецЕсли;

Колво = масЗапросов.Количество();

Если Колво = 1 Тогда
// РЕЗУЛЬТАТ ПОЛУЧАЕТСЯ ОДНИМ ЗАПРОСОМ
Запрос = масЗапросов.Получить(0);
Запрос.Текст = СтрЗаменить(Запрос.Текст, Символы.ПС + "#ПоместитьВоВременнуюТаблицу#", """");

Иначе
// НУЖНО ДЕЛАТЬ НЕСКОЛЬКО ЗАПРОСОВ
масИменТаблиц = Новый Массив;
Менеджер = Новый МенеджерВременныхТаблиц;

Для Сч=1 По Колво Цикл
Запрос = масЗапросов.Получить(Сч-1);

ИмяТаблицы = "ВременнаяТаблица" + Формат(Сч, "ЧГ=0");

ТекстЗапроса = Запрос.Текст;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Символы.ПС + "#ПоместитьВоВременнуюТаблицу#", Символы.ПС + "Поместить " + ИмяТаблицы);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Символы.ПС + "УПОРЯДОЧИТЬ ПО Дата, Ссылка", Символы.ПС + "ИНДЕКСИРОВАТЬ ПО Дата, Ссылка");
Запрос.Текст = ТекстЗапроса;

масИменТаблиц.Добавить(ИмяТаблицы);
Запрос.МенеджерВременныхТаблиц = Менеджер;
Запрос.Выполнить();
КонецЦикла;

ТекстЗапроса = "ВЫБРАТЬ
| ОтобранныеДокументы.*
|ИЗ (";

Сч = 0;
Для Каждого ИмяТаблицы Из масИменТаблиц Цикл
ТекстЗапроса = ТекстЗапроса + ?(Сч=0, """", "
|ОБЪЕДИНИТЬ ВСЕ") + "
|ВЫБРАТЬ " + ИмяТаблицы + ".* ИЗ " + ИмяТаблицы;
Сч = Сч + 1;
КонецЦикла;

ТекстЗапроса = ТекстЗапроса + ") КАК ОтобранныеДокументы
|УПОРЯДОЧИТЬ ПО Дата, Ссылка";

Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.МенеджерВременныхТаблиц = Менеджер;

КонецЕсли;

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ПечатьРеестра(Выборка);
КонецПроцедуры // ВидОбработкиДокументы()
"

 
Людо4ка
Пост №1
18.08.2009 09:34
 

"{Отчет.РеестрДокументов.Форма.ФормаЗаполнения(769)}: Ошибка при вызове метода контекста (Выполнить): {(28, 2)}: Ожидается выражение ")"
<>ГДЕ
Запрос.Выполнить();


Если не выбирать дату - формирует отчет. Если назначить какую-нибудь дату - ошибка
Куда я только не ставила эту скобку :( бесполезно. Что я делаю не так?



Процедура ФормированиеЗапросаДобавитьДокумент(Запрос, МетаданныеДокумента, ВидДокумента, МассивСвойств, ФлагЕстьУсловия)

Если НЕ ВРЕГ(ВидДокумента) =ВРЕГ("ЗаказПокупателя") Тогда

Запрос.Текст = Запрос.Текст + "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|      Док.Ссылка,
|      Док.Дата,
|      Док.Номер,
|      """"" + МетаданныеДокумента.Представление() + """"" КАК ВидДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("ВидОперации", МетаданныеДокумента), "Док.ВидОперации", "NULL") + " КАК ВидОперации,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", МетаданныеДокумента), "Док.Организация", "NULL") + " КАК Организация,
|      ";
Если ОбщегоНазначения.ЕстьРеквизитДокумента("СкладОрдер", МетаданныеДокумента) Тогда
       ИмяРеквизитаСклад = "СкладОрдер";
Иначе
       ИмяРеквизитаСклад = "Склад";
КонецЕсли;
Запрос.Текст = Запрос.Текст + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Контрагент", МетаданныеДокумента), "Док.Контрагент", "NULL") + " КАК Контрагент,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента(ИмяРеквизитаСклад, МетаданныеДокумента), "Док."+ИмяРеквизитаСклад, "NULL") + " КАК Склад,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("СуммаДокумента", МетаданныеДокумента), "Док.СуммаДокумента", "NULL") + " КАК СуммаДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("ВалютаДокумента", МетаданныеДокумента), "Док.ВалютаДокумента", "NULL") + " КАК ВалютаДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Ответственный", МетаданныеДокумента), "Док.Ответственный", "NULL") + " КАК Ответственный ,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Количество", МетаданныеДокумента), "Док.Количество", "NULL") + " КАК Количество
|";
             Запрос.Текст = Запрос.Текст + " ИЗ
|      Документ." + ВидДокумента + " КАК Док
|";

Иначе

Запрос.Текст = Запрос.Текст + "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|      Док.Ссылка,
|      Док.Дата,
|      Док.Номер,
|      """"" + МетаданныеДокумента.Представление() + """"" КАК ВидДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("ВидОперации", МетаданныеДокумента), "Док.ВидОперации", "NULL") + " КАК ВидОперации,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", МетаданныеДокумента), "Док.Организация", "NULL") + " КАК Организация,
|      ";
Если ОбщегоНазначения.ЕстьРеквизитДокумента("СкладОрдер", МетаданныеДокумента) Тогда
       ИмяРеквизитаСклад = "СкладОрдер";
Иначе
       ИмяРеквизитаСклад = "Склад";
КонецЕсли;
Запрос.Текст = Запрос.Текст + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Контрагент", МетаданныеДокумента), "Док.Контрагент", "NULL") + " КАК Контрагент,
      |      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента(ИмяРеквизитаСклад, МетаданныеДокумента), "Док."+ИмяРеквизитаСклад, "NULL") + " КАК Склад,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("СуммаДокумента", МетаданныеДокумента), "Док.СуммаДокумента", "NULL") + " КАК СуммаДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("ВалютаДокумента", МетаданныеДокумента), "Док.ВалютаДокумента", "NULL") + " КАК ВалютаДокумента,
|      " + ?(ОбщегоНазначения.ЕстьРеквизитДокумента("Ответственный", МетаданныеДокумента), "Док.Ответственный", "NULL") + " КАК Ответственный ,
|Сумма (ТабЧасть.Количество) Как Количество
|";
Запрос.Текст = Запрос.Текст + " ИЗ
|      Документ." + ВидДокумента + " КАК Док
|";

Запрос.Текст = Запрос.Текст + " соединение
| Документ.ЗаказПокупателя.Товары как ТабЧасть
| По Док.Ссылка = ТабЧасть.Ссылка
| сгруппировать по
|Док.Ссылка,Док.Номер,Док.Дата, Док.СуммаДокумента,Док.Организация,Док.Контрагент
|";

КонецЕсли;


ФлагЕстьУсловия = Ложь;

Если МассивСвойств.Количество() > 0 Тогда
ДобавитьФильтрыПоСвойствам(Запрос, МассивСвойств);
КонецЕсли;

ЕстьФильтры = ДобавитьФильтрыПоДокументу(Запрос, ВидДокумента, МассивСвойств, ФлагЕстьУсловия);

Если Не ДатаНач = '00010101000000' Тогда
Запрос.Текст = Запрос.Текст + ?(ЕстьФильтры, " И ", " ГДЕ ") + "
|Док.Дата >= &ДатаНач
| ";
ЕстьФильтры = Истина;
КонецЕсли;
Если Не ДатаКон = '00010101000000' Тогда
Запрос.Текст = Запрос.Текст + ?(ЕстьФильтры, " И ", " ГДЕ ") + "
|Док.Дата <= &ДатаКон
| ";
ЕстьФильтры = Истина;
КонецЕсли;


КонецПроцедуры // ФормированиеЗапросаДобавитьДокумент()

// Проверить, нужно ли исключить документ в тексте запроса
//
// Параметры
// МетаданныеДокумента
//
// Возвращаемое значение:
// Булево – Истина - документ нужно исключить, Ложь - нет
//
Функция ИсключитьДокумент(МетаданныеДокумента)
Для Каждого СтрокаОтбораДляПеребора Из Отбор Цикл

Если НЕ СтрокаОтбораДляПеребора.Использование Тогда
Продолжить;
КонецЕсли;

Если НЕ СтрокаОтбораДляПеребора.ИмяОтбора = "ДокументОтчета"
И Не СтрокаОтбораДляПеребора.ИмяОтбора = "Проведен"
И Не СтрокаОтбораДляПеребора.ИмяОтбора = "ПометкаУдаления"
И НЕ СтрокаОтбораДляПеребора.ИмяОтбора = "Категория"
И Найти(СтрокаОтбораДляПеребора.ПредставлениеОтбора, "(свойство документов)") = 0 Тогда
Если СтрокаОтбораДляПеребора.ИмяОтбора = "Склад" Тогда
Если ОбщегоНазначения.ЕстьРеквизитДокумента("СкладОрдер", МетаданныеДокумента) Тогда
ИмяРеквизита = "СкладОрдер";
Иначе
ИмяРеквизита = "Склад";
КонецЕсли;
Иначе
ИмяРеквизита = СтрокаОтбораДляПеребора.ИмяОтбора;
КонецЕсли;
Если НЕ ОбщегоНазначения.ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Возврат Ложь;
КонецФункции // ИсключитьДокумент()

// Добавляет в запрос необходимые виды документов
//
// Параметры:
// Запрос - запрос в который добавляется указанный вид документа
// МассивВидовДокументов - массив содержащий виды документов (строкой) которые надо добавить в запрос
// МассивСвойств - массив свойств документов по которым надо установить фильтр
// СтрКатегорий - строка таблицы фильтров в которой указаны фильтры по категории документов
//
Функция ДобавитьДокументВЗапрос(масЗапросов, МассивВидовДокументов, МассивСвойств, СтрокаОтбора)
Перем ЕстьФильтры;
Перем ФлагЕстьУсловия;

ФлагЕстьКатегории = Не СтрокаОтбора = Неопределено;

текНомерТаблицы = 0;
текЗапрос       = Неопределено;
максТаблиц      = 1;

К1 = -1;
ДобавлятьОкончаниеТекстаЗапроса = Ложь;

Для Каждого ВидДокумента Из МассивВидовДокументов Цикл
//Здесь мы должны понять, не установлен ли фильтр по какому-либо реквизиту, которого нет у документа
//указанного вида. Если установлен, то мы просто не включаем документ в запрос, исключая его из отчета


МетаданныеДокумента = Метаданные.Документы[ВидДокумента];

Если ИсключитьДокумент(МетаданныеДокумента) Тогда
Продолжить;
КонецЕсли;

Если текНомерТаблицы = 0 Тогда
текЗапрос       = Новый Запрос;
масЗапросов.Добавить(текЗапрос);
ФормированиеЗапросаНачало(текЗапрос);
ДобавлятьОкончаниеТекстаЗапроса = Истина;
Иначе
текЗапрос.Текст = текЗапрос.Текст + "
|ОБЪЕДИНИТЬ ВСЕ";
КонецЕсли;
текНомерТаблицы = текНомерТаблицы + 1;

ФормированиеЗапросаДобавитьДокумент(текЗапрос, МетаданныеДокумента, ВидДокумента, МассивСвойств, ФлагЕстьУсловия);

Если текНомерТаблицы = максТаблиц Тогда
текНомерТаблицы = 0;
ФормированиеЗапросаОкончание(текЗапрос, ФлагЕстьКатегории, СтрокаОтбора);
ДобавлятьОкончаниеТекстаЗапроса = Ложь;
КонецЕсли;
КонецЦикла;


Если текЗапрос = Неопределено Тогда
Возврат Ложь;
КонецЕсли;

Если ДобавлятьОкончаниеТекстаЗапроса Тогда
ФормированиеЗапросаОкончание(текЗапрос, ФлагЕстьКатегории, СтрокаОтбора);
КонецЕсли;

Возврат Истина;

КонецФункции // ДобавитьДокументВЗапрос()

// Обработка выбранных документов
//
// Параметры:
// Нет.
//
Процедура ВидОбработкиДокументы() Экспорт
Перем МассивСвойств;
Перем МассивВидовДокументов;
Перем Индекс;
Перем СтрФильтров;
Перем СтрКатегорий;

МассивСвойств = Новый Массив;
СтрКатегорий = Неопределено;

Для Каждого К Из Отбор Цикл

Если НЕ К.Использование Тогда
Продолжить;
КонецЕсли;

СтрФильтров = мТаблицаФильтры.Найти(К.ИмяОтбора, "ИмяПоля");

// На случай если не выбран фильтр
Если СтрФильтров = Неопределено Тогда
Продолжить;
КонецЕсли;

Если Не СтрФильтров.Свойство = Неопределено Тогда
МассивСвойств.Добавить(К);
КонецЕсли;
Если К.ИмяОтбора = "Категория" Тогда
СтрКатегорий = К;
КонецЕсли;

// Проверим на заполненность отбора по виду документа
Если К.ИмяОтбора = "ДокументОтчета" Тогда
Если ТипЗнч(К.ЗначениеОтбора) = Тип("СписокЗначений")
И К.ЗначениеОтбора.Количество()=0 Тогда
Предупреждение("Надо обязательно указать значение отбора для отбора по виду документа!", 60);
Возврат;
Иначе
Если НЕ ЗначениеЗаполнено(К.ЗначениеОтбора) Тогда
Предупреждение("Надо обязательно указать значение отбора для отбора по виду документа!", 60);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;

КонецЦикла;

МассивВидовДокументов = Новый Массив;

Индекс = 0;
СтрокаОтбора = Отбор.Найти("ДокументОтчета", "ИмяОтбора");

Если СтрокаОтбора = Неопределено Тогда
Для Каждого К Из мСписокВидовДокументов Цикл
МассивВидовДокументов.Добавить(К.Значение);
КонецЦикла;
Иначе
Если СтрокаОтбора.Использование Тогда
Если СтрокаОтбора.ВидСравнения = ВидСравнения.НеРавно
ИЛИ СтрокаОтбора.ВидСравнения = ВидСравнения.НеВСписке Тогда

СписокИсключений = Новый СписокЗначений;
Если ТипЗнч(СтрокаОтбора.ЗначениеОтбора) <> Тип("СписокЗначений") Тогда
СписокИсключений.Добавить(СтрокаОтбора.ЗначениеОтбора);
Иначе
Для Каждого К Из СтрокаОтбора.ЗначениеОтбора Цикл
СписокИсключений.Добавить(К.Значение);
КонецЦикла;
КонецЕсли;
Для Каждого К Из мСписокВидовДокументов Цикл
Если СписокИсключений.НайтиПоЗначению(К.Значение) = Неопределено Тогда
МассивВидовДокументов.Добавить(К.Значение);
КонецЕсли;
КонецЦикла;
Иначе
Если ТипЗнч(СтрокаОтбора.ЗначениеОтбора) <> Тип("СписокЗначений") Тогда
МассивВидовДокументов.Добавить(СтрокаОтбора.ЗначениеОтбора);
Иначе
Для Каждого К Из СтрокаОтбора.ЗначениеОтбора Цикл
МассивВидовДокументов.Добавить(К.Значение);
КонецЦикла;
КонецЕсли;
КонецЕсли;
Иначе
Для Каждого К Из мСписокВидовДокументов Цикл
МассивВидовДокументов.Добавить(К.Значение);
КонецЦикла;
КонецЕсли;
КонецЕсли;

масЗапросов = Новый Массив;
Если НЕ ДобавитьДокументВЗапрос(масЗапросов, МассивВидовДокументов, МассивСвойств, СтрКатегорий) Тогда
Предупреждение("Установлены фильтры по реквизитам, которых нет в выбранных видах документов!
|Отчет не может быть сформирован.");
возврат;
КонецЕсли;

Колво = масЗапросов.Количество();

Если Колво = 1 Тогда
// РЕЗУЛЬТАТ ПОЛУЧАЕТСЯ ОДНИМ ЗАПРОСОМ
Запрос = масЗапросов.Получить(0);
Запрос.Текст = СтрЗаменить(Запрос.Текст, Символы.ПС + "#ПоместитьВоВременнуюТаблицу#", """");

Иначе
// НУЖНО ДЕЛАТЬ НЕСКОЛЬКО ЗАПРОСОВ
масИменТаблиц = Новый Массив;
Менеджер = Новый МенеджерВременныхТаблиц;

Для Сч=1 По Колво Цикл
Запрос = масЗапросов.Получить(Сч-1);

ИмяТаблицы = "ВременнаяТаблица" + Формат(Сч, "ЧГ=0");

ТекстЗапроса = Запрос.Текст;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Символы.ПС + "#ПоместитьВоВременнуюТаблицу#", Символы.ПС + "Поместить " + ИмяТаблицы);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Символы.ПС + "УПОРЯДОЧИТЬ ПО Дата, Ссылка", Символы.ПС + "ИНДЕКСИРОВАТЬ ПО Дата, Ссылка");
Запрос.Текст = ТекстЗапроса;

масИменТаблиц.Добавить(ИмяТаблицы);
Запрос.МенеджерВременныхТаблиц = Менеджер;
Запрос.Выполнить();
КонецЦикла;

ТекстЗапроса = "ВЫБРАТЬ
| ОтобранныеДокументы.*
|ИЗ (";

Сч = 0;
Для Каждого ИмяТаблицы Из масИменТаблиц Цикл
ТекстЗапроса = ТекстЗапроса + ?(Сч=0, """", "
|ОБЪЕДИНИТЬ ВСЕ") + "
|ВЫБРАТЬ " + ИмяТаблицы + ".* ИЗ " + ИмяТаблицы;
Сч = Сч + 1;
КонецЦикла;

ТекстЗапроса = ТекстЗапроса + ") КАК ОтобранныеДокументы
|УПОРЯДОЧИТЬ ПО Дата, Ссылка";

Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.МенеджерВременныхТаблиц = Менеджер;

КонецЕсли;

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ПечатьРеестра(Выборка);
КонецПроцедуры // ВидОбработкиДокументы()
"

 
Денис (САМАРА)
Пост №2
Конфигурация и ее номер? Платформа и ее номер?
19.08.2009 08:31
 
 
Людо4ка
Пост №3
1С:Предприятие 8.1 (8.1.14.69)Конфигурация "Управл...
20.08.2009 08:17
 
 
Wee
Пост №4
"ЕстьФильтры = ДобавитьФильтрыПоДокументу(Запрос,...
20.08.2009 08:54
 
 
Денис (САМАРА)
Пост №5
1. Постарайтесь не обновлять конфигурации с обновл...
20.08.2009 09:43
 
 
Денис (САМАРА)
Пост №6
У меня, кстати, ошибка не воспроизвелась... Укажит...
20.08.2009 10:17
 
 
Людо4ка
Пост №7
Какие настройки вы имеете ввиду?
21.08.2009 10:46
 
 
Людо4ка
Пост №8
1. Обновляем с сайта users.v8.1c.ru2. Нововведения...
21.08.2009 10:52
 
 
Денис (САМАРА)
Пост №9
1. Если не секрет, то какие именно из четырех новш...
21.08.2009 13:12
 
 
Людо4ка
Пост №10
Какой у вас номер конфигурации и номер платформы? ...
24.08.2009 08:13
 
 
Денис (САМАРА)
Пост №11
Точь-в-точь такой же как и у Вас. Специально поста...
24.08.2009 09:00
 
 
Людо4ка
Пост №12
Тогда не понимаю, почему ошибка ...хнык....
24.08.2009 09:11
 
 
Денис (САМАРА)
Пост №13
Это уже новый человек или все тот же вопрос задает...
24.08.2009 12:28
 
 
Prikum
Пост №14
"Это наверное "Блондинко"! ;)"
24.08.2009 12:34
 
 
Денис (САМАРА)
Пост №15
Мне нравятся блондинки, особенно с серыми глазами....
24.08.2009 13:25
 
 
Людо4ка
Пост №16
Имя поменяла. "Отловите" отладчиком полный текст з...
24.08.2009 13:36
 
 
Людо4ка
Пост №17
Смею Вас расстроить. Я брюнетка.
24.08.2009 13:37
 
 
BelikovS
Пост №18
Если с нуля, то так:Когда выскакивает ошибка, в ок...
24.08.2009 14:03
 
 
Денис (САМАРА)
Пост №19
Я то думал, что Вы программируете или хотя бы учит...
24.08.2009 14:08
 
 
Людо4ка
Пост №20
Это оскорбление?
24.08.2009 14:44
 
 
Людо4ка
Пост №21
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ОтобранныеДокументы.*Поместит...
24.08.2009 15:29
 
 
Prikum
Пост №22
Это констатация факта! Не обижайтесь, но если не з...
24.08.2009 15:33
 
 
Людо4ка
Пост №23
ВЫБРАТЬ РАЗРЕШЕННЫЕ ОтобранныеДокументы.*Поместить...
24.08.2009 15:34
 
 
Людо4ка
Пост №24
Полностью с вами согласна. Естественно все брошу, ...
24.08.2009 15:43
 
 
BelikovS
Пост №25
С этим запросом все хорошо и с предыдущим тоже.Это...
24.08.2009 15:50
 
 
Людо4ка
Пост №26
Простите,... что? найти...
24.08.2009 15:53
 
 
Prikum
Пост №27
Самый последний текст запроса! В приведенных текст...
24.08.2009 16:01
 
 
BelikovS
Пост №28
Если точка остановки стоит на том месте, где произ...
24.08.2009 16:08
 
 
Денис (САМАРА)
Пост №29
В данном случае думаю вопрос стоит не "что найти",...
24.08.2009 17:51
 

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • ЕГАИС

1С бесплатно 1С-Отчетность 1С-Такском 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление небольшой фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПАРК-Риски 1СПредприятие 8 2-НДФЛ 3-НДФЛ 4-ФСС 5 минут 6-НДФЛ CRM Агентский договор. Учет административная ответственность адресный классификатор акцизы алкоголь алкогольная продукция амортизационная премия амортизация арбитражная практика аттестация рабочих мест аудит аудиторские организации база 1с база для начисления страховых взносов база по страховым взносам база по налогу на прибыль банк и касса в 1с банкротство безнадежная задолженность безналичные расчеты бланки строгой отчетности больничное пособие больничный листок бухгалтер бухгалтерия автономного учреждения бухгалтерская отчетность бухгалтерские события бухгалтерский баланс бухгалтерский учет бухучет Бытовые услуги. Учет бюджет муниципального образования бюджет поселения бюджетная отчетность бюджетный учет ВАС РФ Вахтовый метод.Оплата ввоз товаров взаимозависимые_лица взноcы в ПФР взносы в ФОМС взносы в ФСС взносы на травматизм видео 1С водный налог возврат переплаты восстановление НДС вывоз товаров выездная налоговая проверка выездная проверка выплата зарплаты выплаты иностранному работнику выплаты работникам выплаты физическим лицам высококвалифицированные специалисты вычет НДС вычеты по НДФЛ ВЭД ГК РФ госпошлина государственная регистрация государственные и муниципальные закупки гражданско-правовой договор графики работы двойное налогообложение дебиторка декларация по алкоголю декларация по ЕНВД декларация по НДС денежные документы День Бухгалтерии детские пособия ДиректБанк договор комиссии договор подряда договор поставки договор транспортной экспедиции договорная политика документальное оформление документооборот долговые обязательства должная осмотрительность доходы организации ЕГАИС ЕГРЮЛ ежемесячная отчетность ЕНВД ЕСН ЕСХН задержка заработной платы задолженность по налогам займы закон о бухгалтерском учете занимательная бухгалтерия заработная плата зарплата зарплатные налоги зарубежная командировка защита персональных данных заявление о постановке на учет земельный налог изменения 2015 изменения в законодательстве изменения в законодательстве 2012 изменения в законодательстве 2013 имущественные вычеты имущественный налоговый вычет индивидуальный предприниматель иностранные компании иностранный работник интернет-компании интернет-магазины ИП ИП на ЕНВД ИС 1С:ИТС исправление бухгалтерских ошибок исправление ошибок ИТС ИФНС кадастровая стоимость кадровое оформление камеральная проверка кассовая дисциплина кассовые операции КБК квоты на иностранных рабочих КИК ККТ КЛАДР ключевая ставка книга на УСН книга покупок книга продаж КоАП РФ коды видов продукции командировка командировочные расходы компенсации работникам компенсационные выплаты компенсация за отпуск консервация основных средств консолидированная группа контролируемые сделки корректировочный счет-фактура коэффициент-дефлятор крупнейшие налогоплательщики курортный сбор курсовые разницы лизинг лизинговое имущество ликвидация организации лицензирование льготы по ндс малый бизнес маркировка изделий маркировка изделий из натурального меха маркировка меховых изделий маркировка товара материальная выгода материальная помощь материнский капитал международные стандарты миниденьги модернизация основных средств МРОТ МСФО наличные расчеты налог на игорный бизнес налог на имущество налог на имущество физических лиц налог на прибыль налоги физических лиц налоговая база по налогу на прибыль налоговая база по ндс налоговая база по НДС налоговая декларация налоговая ответственность налоговая отчетность налоговая политика налоговая проверка налоговое администрирование налоговые каникулы налоговые льготы налоговые проверки налоговый агент налоговый агент НДФЛ налоговый агент по НДС налоговый агент по НДФЛ налоговый агент по ндфл налоговый вычет налоговый контроль налоговый мониторинг налоговый учет налогообложение доходов налогоплательщик начисление пени НДПИ НДС НДС по ставке 10% НДС при ввозе НДС при экспорте НДС-2015 НДФЛ некоммерческие организации учет неотделимые улучшения нерезиденты НИОКР НК РФ НМА новая форма декларации новая форма расчета новости нормы естественной убыли нулевая декларация нулевая ставка обзор обзор бухгалтерских событий обзор новостей обмен документами обновление КЛАДР обособленное подразделение обособленные подразделения обучение 1с оказание услуг ОКВЭД2 ОКПД2 онлайн-касса онлайн-ккт онлайн-ККТ освобождение от налогообложения освобождение от ндс освобождение от НДС основные средства отпускные отходы отчетность в ПФР отчетность в росстат отчетность в Росстат отчетность организации отчетность по страховым взносам отчетность предпринимателя оформление счета-фактуры охрана труда патентная система ПБУ 18 первичные документы перенос убытков персонифицированный учет план счетов плата за негативное воздействие на окружающую среду плата за проезд грузовиков платежи платежное поручение платежные документы 1с платежный агент платежный терминал повышение ставок подакцизные товары подтверждающие документы подтверждение расходов полномочия налоговых органов пониженные тарифы поправки в НК РФ поправки в тк рф поправки в ТК РФ порядок маркировки товаров пособие по беременности и родам пособие по временной нетрудоспособности пособие по нетрудоспособности пособия за счет ФСС посреднические договоры постановка на учет постановка на учет в налоговом органе права налогоплательщика представление сведений приказ Минфина применение ККТ приостановление операций по счету проверка ИНН/КПП проверка контрагентов продажа алкогольной продукции производственный календарь проф. Пятов профессиональные вычеты ПСН псн путевой лист работники-иностранцы раздельный учет расходы на ГСМ расходы на рекламу расходы организации расчет больничного листа расчет заработной платы расчет НДПИ расчет отпускных расчет себестоимости расчет страховых взносов расчетный счет расчеты с работниками регистрация недвижимости регистрация юридических лиц реконструкция основных средств ремонт основных средств реорганизация росалкогольрегулирование РСВ-1 рыночные цены самозанятые граждане свод отчетов сдача имущества в аренду секреты 1С:ЗУП сельскохозяйственный товаропроизводитель система "Платон" служебная командировка снижение ставок совместители совмещение налоговых режимов составление и сдача отчетности составление и сдача отчетности социальное страхование социальные вычеты социальный налоговый вычет спецоценка условий труда средний заработок ставка НДС Ставка НДФЛ ставка рефинансирования ставка УСН стандартные вычеты стандарты бухучета статистика статистическая отчетность статотчетность страхование страховые взносы страховые взносы в пфр страховые взносы в фсс страховые взносы в ФСС страховые взносы для самозанятых страховые взносы на травматизм страховые тарифы судебные издержки суммовые разницы суточные счет-фактура такси таможенные платежи таможенный союз ТК РФ торг-12 торговый сбор транспортный налог трудовая книжка трудовой договор увольнение по инициативе руководителя увольнение по соглашению сторон уголовная ответственность удержание алиментов УКД универсальный корректировочный документ УПД уплата налога уплата налогов упрощенная система налогообложения УСН уставный капитал уточненка утрата права на усн учет аренды учет в АО учет в ООО учет в сельском хозяйстве учет в строительстве учет в туризме учет дивидендов учет доходов при УСН учет доходов при усн учет импорта учет лизинга учет МПЗ учет на производстве учет ОС учет основных средств учет премий учет расходов учет расходов при УСН учет расходов при усн учет реализации учет скидок учет субсидий учет товаров учет ценных бумаг учет экспорта учетная политика учредительные документы факсимиле ФИАС финансовый анализ финансовый результат ФНС РФ форма 6-НДФЛ формы документов ФСС штрафные санкции ЭДО экологические платежи экспорт в страны ЕАЭС экспорт продукции электронная отчетность электронная подпись электронные счета-фактуры электронный документооборот электронный формат энциклопедия проверок

Все теги
X

Яндекс-виджет: Новости
Яндекс-виджет: Полезные материалы
Информеры