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

Хранилище

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

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



> Сортировка по значению реквизита          
wmatik Подменю пользователя
сообщение 21.02.12, 15:53
Сообщение #1

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

Формируя отчет столкнулась со следующей проблемой, не могу сообразить как вытащить и отсортировать ТМЦ по какому-либо значению, для примера взяла счет учета ТМЦ:
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
      Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Заголовок");

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

Из запроса не получилось вытянуть,может подскажите какими способами возможно это сделать?спасибо


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

sava1 Подменю пользователя
сообщение 21.02.12, 16:01
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2691
Из: Проскуров
Спасибо сказали: 682 раз
Рейтинг: 661

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


и посмотреть что ВЫ получили в результате запроса

MATEVI Подменю пользователя
сообщение 21.02.12, 16:27
Сообщение #3

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Если это ПУБ почему запрос по документам, а не по регистру Партии? Там и счет есть. И ТМЦ это ТМЦ.
В документах ТМЦ справочник неопределенного вида, поэтому и сортировать кроме как в ТЗ не получится.

mister-x Подменю пользователя
сообщение 21.02.12, 17:29
Сообщение #4

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

в 7.7 в запиті сортування відбувається після службового слова Группировка:
і тоді
Упорядочить по

куріть синтакс-помічник:
Группировка <?> Упорядочить по ;

якщо потрібне якесь специфічне сортування (в мене було на рівні груп ТМЦ по алфавіту, а в середині груп по конкретному реквізиту) - див пост
Цитата(sava1 @ 21.02.12, 16:01) *
После КонецЕсли вставить:


Сообщение отредактировал mister-x - 22.02.12, 13:32

MATEVI Подменю пользователя
сообщение 21.02.12, 17:56
Сообщение #5

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(wmatik @ 21.02.12, 15:53) *
как вытащить и отсортировать ТМЦ по какому-либо значению, для примера взяла счет учета ТМЦ

Вопрос вначале звучит так.

wmatik Подменю пользователя
сообщение 22.02.12, 8:18
Сообщение #6

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

Получается сортировать только по наименованию ТМЦ:
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
      Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Заголовок");

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |ОбрабатыватьДокументы Проведенные;
    |Док = Документ.ПриходнаяНакладнаяГТД.ТекущийДокумент, Документ.ПриходнаяНакладнаяЗапасы.ТекущийДокумент, Документ.ПриходнаяНакладнаяПрочие.ТекущийДокумент;
    |ТМЦ = Документ.ПриходнаяНакладнаяГТД.ТМЦ, Документ.ПриходнаяНакладнаяЗапасы.ТМЦ, Документ.ПриходнаяНакладнаяПрочие.ТМЦ;
    |Группировка ТМЦ упорядочить по ТМЦ.Счет;
    |Группировка Док;";

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

    Пока Запрос.Группировка(1) = 1 Цикл
        ТМЦ = Запрос.ТМЦ;  
        Таб.ВывестиСекцию("Строка");
    КонецЦикла;    
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры

Когда вместо "Наименование" пишу "Счет" выдает ошибку "Неверно заданный пусть "Счет""


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

wmatik Подменю пользователя
сообщение 22.02.12, 11:26
Сообщение #7

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

Все равно ничего не сортирует:
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
      Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Заголовок");

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |ОбрабатыватьДокументы Проведенные;
    |Док = Документ.ПриходнаяНакладнаяГТД.ТекущийДокумент, Документ.ПриходнаяНакладнаяЗапасы.ТекущийДокумент, Документ.ПриходнаяНакладнаяПрочие.ТекущийДокумент;
    |Группировка Док;";

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

    КонецЦикла;    
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

nysysimara Подменю пользователя
сообщение 22.02.12, 11:33
Сообщение #8

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

Пока Запрос.Группировка(1) = 1 Цикл 
    Док = Запрос.Док;    
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку() = 1 Цикл
        Если ПустоеЗначение(Док.ТМЦ) = 1 Тогда
            Продолжить;
        КонецЕсли;
        ТЗ.НоваяСтрока();
        ТЗ.Товар = Док.ТМЦ;
        ТЗ.Вид    = Док.ТМЦ.Вид;//нужно заполнить колонку вид
    КонецЦикла;
КонецЦикла;

ТЗ.Сортировать("Вид"); //сортировка после заполения таблицы
//теперь вывод на печать
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку(); Цикл
    Таб.ВывестиСекцию("Строка");
КонецЦикла;

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

5_kopeek Подменю пользователя
сообщение 22.02.12, 11:34
Сообщение #9

Ветеран
*******
Женщине-одинэснику
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0

Цитата(wmatik @ 22.02.12, 8:18) *
Когда вместо "Наименование" пишу "Счет" выдает ошибку "Неверно заданный пусть "Счет""

Обратите внимание на тип реквизита ТМЦ документа ПриходнаяНакладнаяПрочие. В запросе указаны разные типы значения для одной и той же переменной.

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

wmatik Подменю пользователя
сообщение 22.02.12, 11:47
Сообщение #10

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

пишет:
ТЗ.Вид = Док.ТМЦ.Вид;
{C:\DOCUMENTS AND SETTINGS\WMATIK\РАБОЧИЙ СТОЛ\КОПИЯ РЕЕСТРТОВАРОВ.ERT(35)}: Поле агрегатного объекта не обнаружено (Вид)

Сделала сортировку по реквизиту "Счет", все получилось, но все же интересно почему по реквизиту "ВидТМЦ" не сортирует, выдает ошибку:
Поле агрегатного объекта не обнаружено (ВидТМЦ)


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

nysysimara Подменю пользователя
сообщение 22.02.12, 11:59
Сообщение #11

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

ТЗ.Вид    = Док.ТМЦ.ВидТМЦ;//нужно заполнить колонку вид


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

wmatik Подменю пользователя
сообщение 22.02.12, 14:02
Сообщение #12

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

Все равно поле агрегатного объекта не обнаружено. Я так понимаю это потому что тип значения у реквизита "ВидТМЦ" - перечисление. И как же быть в таком случае


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

nysysimara Подменю пользователя
сообщение 22.02.12, 14:16
Сообщение #13

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

Цитата(5_kopeek @ 22.02.12, 11:34) *
Обратите внимание на тип реквизита ТМЦ документа ПриходнаяНакладнаяПрочие. В запросе указаны разные типы значения для одной и той же переменной.

значит
Если Док.ТМЦ.Вид()="ТМЦ" Тогда
    ТЗ.Вид = Док.ТМЦ.ВидТМЦ;
КонецЕсли;

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

MATEVI Подменю пользователя
сообщение 22.02.12, 14:22
Сообщение #14

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Потому что приходная накладная прочие приходует "Необоротные активы" и "Бланки СО". И у ТМЦ и 2-х других есть реквизит счет. А реквизит ВидТМЦ присутствует только у ТМЦ

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

wmatik Подменю пользователя
сообщение 22.02.12, 14:44
Сообщение #15

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

теперь все стало ясно,спасибо большое


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

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


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

 

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