Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос 1С 7.7          
Yoja Подменю пользователя
сообщение 19.06.14, 12:18
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 90
Спасибо сказали: 4 раз
Рейтинг: 0

Добрый день!
Помогите правильно написать запрос!

1П:Предприятие 7.7 для SQL (7.70.027)
Конфигурация
"Бухгалтерский учет" для Украины (7.70.252)

Нужно в таблицу с полями (№п/п, Дата, Документ, Касса, Сумма, Примечание)
вывести ПриходныйКассовый ордер (ПКО) и РасходныйКассовый ордер (РКО) за период
с сортировкой 1) Касса 2) Дата

КодЗапроса ="
      |Период с Дата1 По Дата2;
      |ДокПКО = Документ.ПриходныйКассовый.ТекущийДокумент;
//   |ДокРКО = Документ.РасходныйКассовый.ТекущийДокумент;
      |Группировка ДокПКО Упорядочить По ДокПКО.Субконто;
      |";


ДокРКО пока закоментил, так как сортировка еще не работает


Спасибо БОЛЬШОЕ

vadim007 Подменю пользователя
сообщение 19.06.14, 12:49
Сообщение #2

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

ТекстЗапроса = "
      |Период с Дата1 По Дата2;
      |Дата = Документ.ПриходныйКассовый.ДатаДок, Документ.РасходныйКассовый.ДатаДок;
      |Документ = Документ.ПриходныйКассовый.ТекущийДокумент, Документ.РасходныйКассовый.ТекущийДокумент;
      |Касса = Документ.ПриходныйКассовый.РСчет, Документ.РасходныйКассовый.РСчет;
      |Сумма = Документ.ПриходныйКассовый.СуммаВал, Документ.РасходныйКассовый.СуммаВал;
      |Примечание = Документ.ПриходныйКассовый.Примечание, Документ.РасходныйКассовый.Примечание;
      |";

Запрос = СоздатьОбъект("Запрос");
Запрос.Выполнить(ТекстЗапроса);
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
     Возврат;
КонецЕсли;

ТаблЗнач = Создать("ТаблицаЗначений");
Запрос.Выгрузить(ТаблЗнач, 0, 0);
ТаблЗнач.Сортировать("Касса, Дата");

ТаблЗнач.ВставитьКолонку("Номер", 1);
Для Инд=1 По ТаблЗнач.КоличествоСтрок() Цикл
     ТаблЗнач.УстановитьЗначение(Инд,"Номер",Инд);
КонецЦикла;

Yoja Подменю пользователя
сообщение 19.06.14, 13:23
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 90
Спасибо сказали: 4 раз
Рейтинг: 0

щас протестируем, (ток у меня все выводиться не в ТЗ а в Таблицу)

Yoja Подменю пользователя
сообщение 19.06.14, 15:11
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 90
Спасибо сказали: 4 раз
Рейтинг: 0

Не работает ((
1) Ошибка в запросе, закоментив строку в запросе с Примечанием, проходим дальше
{U:\TEST1C\18.06.2014\004M.ERT(36)}: Примечание = Документ.ПриходныйКассовый.ТекущийДокумент.Примечание <<?>> , Документ.РасходныйКассовый.ТекущийДокумент.Примечание;
   Запрос[7] : Запрос не оперирует величинами типа "Строка" неопределенной длины
   Запрос.Выполнить(КодЗапроса);
   {U:\TEST1C\18.06.2014\004M.ERT(36)}: Примечание = Документ.ПриходныйКассовый.ТекущийДокумент.Примечание, Документ.РасходныйКассовый.ТекущийДокумент.Примечание <<?>>;
   Запрос[7] : Запрос не оперирует величинами типа "Строка" неопределенной длины
   Если Запрос.Выполнить(КодЗапроса) = 0 Тогда
   {U:\TEST1C\18.06.2014\004M.ERT(37)}: Примечание = Документ.ПриходныйКассовый.ТекущийДокумент.Примечание <<?>> , Документ.РасходныйКассовый.ТекущийДокумент.Примечание;
   Запрос[7] : Запрос не оперирует величинами типа "Строка" неопределенной длины
   Если Запрос.Выполнить(КодЗапроса) = 0 Тогда
   {U:\TEST1C\18.06.2014\004M.ERT(37)}: Примечание = Документ.ПриходныйКассовый.ТекущийДокумент.Примечание, Документ.РасходныйКассовый.ТекущийДокумент.Примечание <<?>>;
   Запрос[7] : Запрос не оперирует величинами типа "Строка" неопределенной длины


2. Показывает что выполнил запрос и вернул одну строку
Запрос.Выгрузить(ТаблЗнач,0,0); 
Сообщить(ТаблЗнач.КоличествоСтрок())


3.
ТаблЗнач.Сортировать("Касса ,Дата");        
{U:\TEST1C\18.06.2014\004M.ERT(59)}: Неверный идентификатор колонки!



64000000.gif

nysysimara Подменю пользователя
сообщение 20.06.14, 7:20
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

попробуйте так:
Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)  
    |ДатаДок = Документ.ПриходныйКассовый.ДатаДок, Документ.РасходныйКассовый.ДатаДок;
    |ТекущийДокумент = Документ.ПриходныйКассовый.ТекущийДокумент, Документ.РасходныйКассовый.ТекущийДокумент;
    |Касса = Документ.ПриходныйКассовый.РСчет, Документ.РасходныйКассовый.РСчет;
    |СуммаВал = Документ.ПриходныйКассовый.СуммаВал, Документ.РасходныйКассовый.СуммаВал;
    |Функция СуммаВалСумма = Сумма(СуммаВал);
    |Группировка Касса;
    |Группировка ДатаДок;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    
    ТаблЗнач = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТаблЗнач, 0, 0);

а примечание можно потом вывести
ТаблЗнач.ТекущийДокумент.Примечание


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Спасибо сказали: Yoja,

Yoja Подменю пользователя
сообщение 20.06.14, 11:07
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 90
Спасибо сказали: 4 раз
Рейтинг: 0

Спасибо, запрос работает !!!

Нашел еще один способ решить эту задачу:
1: Создаем таблицу значений
2: Получаем объект документ РКО
3: Выгружаем то что нужно
4: Получаем объект документ ПКО
5: Выгружаем то что нужно
6: Сортируем
7: Выгружаю в Таблицу
8: Сохраняем в Excel

Седьмой пункт можно было бы и пропустить, однако таблица сохраняется в Excel файл одной строкой


ТаблЗнач = СоздатьОбъект("ТаблицаЗначений");    
       ТаблЗнач.Очистить();
      
       ТаблЗнач.НоваяКолонка("ТабП");
       ТаблЗнач.НоваяКолонка("ТабД");
       ТаблЗнач.НоваяКолонка("ТабДок");
      
      
           row=1; //первая строка
           ДокПК = СоздатьОбъект("Документ.ПриходныйКассовый");
           ДокПК.ВыбратьДокументы(Дата1,Дата2);    
       .....                                          
           Пока ДокПК.ПолучитьДокумент() = 1 Цикл
        ТаблЗнач.НоваяСтрока();
        ТаблЗнач.ТабП     = row;
        ТаблЗнач.ТабД     = СокрЛП(ДокПК.ДатаДок);  
        ТаблЗнач.ТабДок   = СокрЛП(ДокПК.НомерДок);
       .....
              
           row=row+1;//переходим на следующую строку
           КонецЦикла;
       .......
     ТаблЗнач.Сортировать("ТабК+, ТабД+");
    
       Таб.Записать(КаталогИБ()+"ExtForms\004m.xls", 1);

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 09.05.24, 18:49
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!