#0
by maslov_ilya
Здравствуйте, Гуру! Задача такая. Есть документ "РеализацияТовара" с табличной частью "Товар"(Код, Номенклатура, Кол-во, Цена, Сумма) Необходимо, перед тем как отправить на печать, отсортировать эту таблицу по колонке номенклатура на выбор пользователя двумя методами: 1)По наименованию номенклатуры 2) По длине наименования номенклатуры Как я смог выяснить, сортировать непосредственно саму ТЧ - не верно, т.к. документ будет каждый раз перепроводиться и второй метод не получится реализовать. Сортировка должна проводиться только лишь для печатной формы. Так же прикинул примерный алгоритм для решения задачи: 1) выгружаем ТЧ в ТЗ 2) сортируем ТЗ 3) выводим печатную форму Вот тут проблемы в знаниях... 1) Можно ли решить мою задачу не прибегая к обработки внешней печатной формы? 2) Подскажите пожалуйста с чего начать? В каких модулях какие процедуры должны быть? Прошу пинать не сильно, новичок. Решаю эту задачу с целью разобраться, а не получить готовое решение. Заранее спасибо!
#2
by maslov_ilya
Любопытная, вы не правильно поняли, такой цели нет. Я предполагаю, что как раз таки и нужно через внешнюю. Просто поинтересовался, вдруг тут все проще.
#3
by Garykom
в большинстве типовых печать устроена путем передачи некого объекта в типовую функцию печати можно подменить объект к примеру вместо исходного документа подсовываем другой с отсортированной как надо ТЧ ))
#4
by Любопытная
по длине наименования уж точно типовыми методами не отсортируешь, так что однозначно свое ваять. А раз свое ваять, значит лучше ВПФ
#5
by maslov_ilya
Да, как раз это я и хочу сделать. Не могу сообразить как к этой задаче подойти, куда копать)
#6
by Любопытная
копай в процедуру Печать либо в модуле объекта, либо в модуле менеджера. А там уже смотри, что передается и что на выходе получается
#7
by Любопытная
+ Обычно культурные люди запросом вытаскивают отдельно данные для шапки документа, отдельно ТЧ (опять же запросом), вот там, где ТЧ, можешь сортировать ее как тебе нравится.
#8
by maslov_ilya
Спасибо! То есть я правильно понимаю... 1) Создаю внешнюю обработку 2) Подцепляю ее к кнопке печать(по умолчанию) на форме нужного документа 3) Далее работаю с модулем этой внешней обработки и там уже формирую все запросы.
#9
by Vladal
"Подцеплять к кнопке Печать" в типовых легко - открыть справочник ВнешнихОбработок, создать новый элемент, указать тип "Внешняя печатная форма" и загрузить эту обработку. На форме элемента этого справочника указать объект, если он не получен автоматически при добавлении внешней обработки.
#10
by Vladal
3) Только после каждого изменения модуля обработки ее надо снова загружать в справочник внешних обработок (поверх существущей)
#12
by Vladal
А что смущает? Если непосредственно в форме документа сортировать, то перед печатью надо будет проводить/записывать документ. Всё правильно человек рассуждает - ему надо сортировать товары только в печатной форме, не затрагивая данные документа.
#13
by vicof
Ну то есть взяли распечатали документ за 2012 год, и тут бах, он перепроводится. Расчет себестоимости слетает :)
#16
by maslov_ilya
Чтобы напечатать его придется провести опять. спасибо, уже в процессе. Как приду к чему то, опубликую тут, мало ли еще какому новичку пригодится.
#17
by vicof
Нахрена??? Бери данные из документа, сортируй в запросе уже, какая разница, в каком порядке в документе строчки?
#18
by Рэйв
Подходит ко мне сегодня коллега и говорит."Там в числе пробез когда я со строкой соедеиняю, как убрать?" Я говорю- долго- формат.Быстро - замени Символы.НПП на пустую... Он такой -"А проще никак?" И тут я понял что лень - неистребима. ТС проще просидеть поддня на форуме чем написать пару тройку строк:-)
#20
by maslov_ilya
То есть вы имеете ввиду произвести сортировку в запросе при формировании печатной формы? Тогда как реализовать вот это: "Необходимо, перед тем как отправить на печать, отсортировать эту таблицу по колонке номенклатура на выбор пользователя двумя методами: 1)По наименованию номенклатуры 2) По длине наименования номенклатуры"
#22
by maslov_ilya
Я не понимаю, что вас смущает) Есть задача: предоставить пользователю возможность перед тем как его документ вылезет из принтера выбрать каким способом отсортировать таблицу и собственно этим способом отсортировать. Эти способы описаны выше. При этом сортировки в самом документе производиться не должно, т.к. это повлечет за собой его перепроведение, что не допустимо.
#24
by qesto
сделай так: По кнопке печать открывается форма обработки, где пользователь может выбрать сортировку. Далее выбирает печать и по ней уже передается твой параметр сортировки.
#27
by barrgand
Как-то странно ты прочитал. Автор как раз и говорит, что выяснил, что сортировать в документе неверно, поэтому спрашивает как ему лучше поступить. А ты пристал к нему со своей сортировкой в документе.
#28
by bazvan
если на выбор пользователя, то бишь интерактивно, создай форму обработки вызывай ее а там галочка так или так сортировать
#32
by maslov_ilya
Вообщем так, господа, выручайте) Помогите разобраться пожалуйста) Перечитал несколько статей, упор сделал вот на эту Саму внешнюю обработку создал и вроде должна работать, но, как оказалось я не могу ее зарегистрировать у себя в конфигурации, т.к. я не использую типовую а писал конфигурацию с нуля. В итоге у меня даже нет раздела администрирование, где и происходит регистрация внешней обработки. Как мне быть?
#36
by maslov_ilya
Ну не такой я тупой, че началось то)))) Изучаю. Только понял я что не подсилу мне самому из пустоты нарисовать то что мне нужно. Думаю, как обойтись уже без внешней печатной формы
#37
by Chameleon1980
извини. да я не для того. просто верно - получай таблицу дока, например запросом, сотртируй как надо (только длину в запросе????). А там делай что хотишь. и вперед. затык то самый в чем?
#40
by maslov_ilya
Затык самый что ни на есть глупый. Запрос на получение данных из таблицы где нужно вызывать? В модуле менеджера документа в процедуре Печать? Или создать еще одну кнопку на форме документа Мне же еще нужно реализовать возможность выбора метода сортировки, получается нужно еще какую то форму предварительно вызывать.
#43
by Chameleon1980
только, как ты говорил, по длине наименования, допустим. Там перебором - опять же методов несколько. Самый прростой предложить. +колонкаДлина цикл запроняем , сортируем поехали
#44
by Maniac
Я уже все выложил Полностью готовая процедура. Пусть вставит ее в вывзов любой печати и все дела. Документ физически перепроводиться не будет. Запись - не смертельно.
#45
by Maniac
По длине наименования все просто. В ту же колонку в моей процедеру ИднесСОртировки в цикле бежать и прописывать СтрДлина(Номенклатура.Наименование). в Конце после цикла Таблицатряляля.Сортировать(ИндексСортировки) Вот и все.
#47
by maslov_ilya
Спасибо большое, помогли сдвинуться с мертвой точки! Пытаюсь разобраться с кодом и подстроить под свои объекты. Вот мой модуль менеджера. [spoiler=Модуль Менеджера] [code] [/code] [/spoiler] Я временно удалил остальные методы сортировки чтобы отладить первый. Подскажите пожалуйста, что передается этими параметрами (ИдентификаторКоманды,ПараметрыОбработки)? Не могу понять их назначения и принципа работы.
#48
by maslov_ilya
Уважаемый, Maniac, растолкуйте пожалуйста для новичка, всю ночь просидел, не смог добиться нужного результата. 1) Процедура вызова печати у меня находится в МодулеМенеджера Документа "РеализацияТоваров". Вот она: 2) Где мне описывать вашу процедуру и где вызывать ее? Синтаксис я немного переписал, т.к. компилятор ругался на ДокументСсылка как на неопределенную переменную. Не уверен верно ли я написал в этот раз, но компилятор не ругается. 3) Я пытался Описать в этом же модуле процедуру и вызвать в теле процедуры Печать, но из-за того что не понимаю какие параметры передать, возникали ошибки типов.
#53
by maslov_ilya
Хорошо, спасибо, с самой сортировкой понятно, разобрался. Как и вчера, сейчас возникает ошибка: {Документ.РеализацияТоваров.МодульМенеджера}: Значение не является значением объектного типа (Товары) ОбъектНазначения.Товары.Загрузить(ТаблицаТовары); Вот в этих строках: ТаблицаТовары.Сортировать("ИндексСортировки");
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Таблицы, таблицы, таблицы... Будь они неладны
- Сортировка СпискаТабличного поля
- Журнал Документа - Реализация товаров и услуг, сортировка по контрагенту?
- Сортировка строк табличной части
- Сортировка Таблицы Значений по определенной дате
- Значение поля Временной таблицы передать в параметр виртуальной таблицы.
В этой группе 1С
- Загрузка банков с РБК в УПП. А где же Крым?
- ОписаниеОповещения или я туплю ?
- Как отключить выгрузку организаций при обмене Ут -> БП?
- ЗУП(ЗБУ) 8.2 как ввести удержание - "Профвзносы" - 1%?
- УТ 10 Проведение по партиям
- Не отображается интерфейс УТ 11.1
- Остатки по складам других магазинов, Розница 2.1 РИБ
- 8.3 подключить внешнюю обработку
- 1С 8 (УФ) Обновление элементов формы
- Конвертация данных Подменить реквизит
- Соединение таблиц в СКД
- ЗУП Как оформить возврат банком ден средств сотруднику.
- Регламентное задание не запускает обработку
- 1С 8.3 Бух. Сохранение печатной формы договора в формат MS Word (docили docx)
- Установка расширения работы с криптографией не 1С средствами.
- Вопрос по закрытию заказа покупателей в 1с УПП
- УПП Масса нетто/брутто
- Помогите программно заполнить УФ форму
- При входе сообщение: "Не удалось установить монопольный режим..."
- УТ 11.1.9 Приходный ордер на адресный склад. Не заполняется упаковка.