Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 02:38
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Сортировка ТЧ по Родителю  (Прочитано 1957 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tesla

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Всем доброго дня! Прошу прощения за столь банальную тему. Надеюсь на вашу помощь. Так вот, есть табличная часть "Товары" в документе "ИнвентаризацияТоваровНаСкладе", после заполнения она имеет не очень удобную сортировку. Удобным является вариант сортировки по родителю, т.е. по группам в номенклатуре. Пока что у меня созрело два способа: 1й - добавить в ТЧ колонку типа строка и отсортировать по ней; 2й - сортировать в момент заполнения ТЧ. Второй вариант для меня более сложный. Часть первого варианта я уже осуществил, т.е. добавил колонку в ТЧ. Вопрос: как заполнить колонку ссылкой номенклатуры ?


Оффлайн Rasty

  • *****
  • Сообщений: 989
  • РЕПУТАЦИЯ: 139
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
скиньте кусок кода, где заполняется ТЧ
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Tesla

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Процедура КоманднаяПанельТоварыДействиеЗаполнитьПоОстаткамНаСкладе(Кнопка)

Если Товары.Количество() > 0 Тогда

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

Товары.Очистить();
КонецЕсли;

ЗаполнитьПоОстаткамНаСкладеУпр(ПостроительОтчета);

мОбновитьРасчетСуммыРеглУчетаДляНТТ = Истина;

Процедура ЗаполнитьПоОстаткамНаСкладеУпр(ПостроительОтчета, ТолькоУчетные = Ложь) Экспорт

Если РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Дата).ВестиПартионныйУчетПоСкладам Тогда
ВремСклад = Склад;
Иначе
ВремСклад = Справочники.Склады.ПустаяСсылка();
КонецЕсли;

ВалютаУпрУчета    = глЗначениеПеременной("ВалютаУправленческогоУчета");
СтруктураКурса    = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаУпрУчета, Дата);
КурсУпрУчета      = СтруктураКурса.Курс;
КратностьУпрУчета = СтруктураКурса.Кратность;

Если Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда

ПостроительОтчета.Текст =
"ВЫБРАТЬ
| ОстаткиТоваров.Номенклатура,
| ОстаткиТоваров.ХарактеристикаНоменклатуры,"
+?(УчитыватьСерии, "
| ОстаткиТоваров.СерияНоменклатуры,", "") + "
| ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения,
| ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения,
| ОстаткиТоваров.ЦенаВРознице,
| ВЫБОР
| КОГДА (СУММА(ОстаткиПартий.КоличествоОстаток) = 0)
|   ИЛИ (СУММА(ОстаткиПартий.КоличествоОстаток) ЕСТЬ NULL) ТОГДА
| 0
| ИНАЧЕ
| СУММА(ОстаткиПартий.СтоимостьОстаток)*СУММА(ОстаткиТоваров.КоличествоОстаток)
| / СУММА(ОстаткиПартий.КоличествоОстаток)
| КОНЕЦ                                   КАК Сумма,
| СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество
|ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки(&МоментДокумента,
|                                                    Склад = &Склад
|//                                                  И ЦенаВРознице > 0
|) КАК ОстаткиТоваров
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента,
|                                                   Склад = &ПартионныйСклад) КАК ОстаткиПартий
|ПО
| ОстаткиТоваров.Номенклатура = ОстаткиПартий.Номенклатура
| И ОстаткиТоваров.ХарактеристикаНоменклатуры = ОстаткиПартий.ХарактеристикаНоменклатуры"
+?(УчитыватьСерии, "
| И (ОстаткиТоваров.СерияНоменклатуры          = ОстаткиПартий.СерияНоменклатуры
| ИЛИ НЕ ОстаткиТоваров.Номенклатура.ВестиПартионныйУчетПоСериям)", "") + "
|
|{ГДЕ ОстаткиТоваров.Номенклатура КАК Номенклатура,
|     ОстаткиТоваров.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа}
|
|СГРУППИРОВАТЬ ПО
| ОстаткиТоваров.Номенклатура,
| ОстаткиТоваров.ХарактеристикаНоменклатуры,"
+?(УчитыватьСерии, "
| ОстаткиТоваров.СерияНоменклатуры,", "") + "
| ОстаткиТоваров.ЦенаВРознице";
Иначе

Если Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый Тогда
РегОстатки = "ТоварыНаСкладах";
Иначе
РегОстатки = "ТоварыВРознице";
КонецЕсли;

ПостроительОтчета.Текст =
"ВЫБРАТЬ
| ОстаткиТоваров.Номенклатура,
| ОстаткиТоваров.ХарактеристикаНоменклатуры,"
+?(УчитыватьСерии, "
| ОстаткиТоваров.СерияНоменклатуры,", "") + "
| ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения,
| ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения,
| ОстаткиТоваров.Качество,
| СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество,
| ВЫБОР
| КОГДА (СУММА(ОстаткиПартий.КоличествоОстаток) = 0)
|   ИЛИ (СУММА(ОстаткиПартий.КоличествоОстаток) ЕСТЬ NULL) ТОГДА
| 0
| ИНАЧЕ
| СУММА(ОстаткиПартий.СтоимостьОстаток)*СУММА(ОстаткиТоваров.КоличествоОстаток)
| / СУММА(ОстаткиПартий.КоличествоОстаток)
| КОНЕЦ                                  КАК Сумма
|ИЗ
| РегистрНакопления." + РегОстатки + ".Остатки(&МоментДокумента, Склад = &Склад)
|КАК ОстаткиТоваров
|
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента,
|                                                   Склад = &ПартионныйСклад) КАК ОстаткиПартий
|ПО
| ОстаткиТоваров.Номенклатура = ОстаткиПартий.Номенклатура
| И ОстаткиТоваров.ХарактеристикаНоменклатуры = ОстаткиПартий.ХарактеристикаНоменклатуры"
+?(УчитыватьСерии, "
| И (ОстаткиТоваров.СерияНоменклатуры          = ОстаткиПартий.СерияНоменклатуры
| ИЛИ НЕ ОстаткиТоваров.Номенклатура.ВестиПартионныйУчетПоСериям)", "") + "
| И ОстаткиТоваров.Качество                   = ОстаткиПартий.Качество
|
|{ГДЕ ОстаткиТоваров.Номенклатура КАК Номенклатура,
|     ОстаткиТоваров.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа}
|
|СГРУППИРОВАТЬ ПО
| ОстаткиТоваров.Номенклатура,
| ОстаткиТоваров.ХарактеристикаНоменклатуры,"
+?(УчитыватьСерии, "
| ОстаткиТоваров.СерияНоменклатуры,", "") + "
| ОстаткиТоваров.Качество";

КонецЕсли;

Запрос = ПостроительОтчета.ПолучитьЗапрос();

Запрос.УстановитьПараметр("Склад",           Склад);
Запрос.УстановитьПараметр("ПартионныйСклад", ВремСклад);
Если ЭтоНовый() Тогда
Запрос.УстановитьПараметр("МоментДокумента", КонецДня(Дата));
Иначе
Запрос.УстановитьПараметр("МоментДокумента", МоментВремени());
КонецЕсли;

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл

Если Выборка.Количество = 0 Тогда
Продолжить;
КонецЕсли;

СтрокаТабличнойЧасти = Товары.Добавить();

СтрокаТабличнойЧасти.Номенклатура     = Выборка.Номенклатура;
СтрокаТабличнойЧасти.КоличествоУчет   = Выборка.Количество;
СтрокаТабличнойЧасти.Количество       = ?(ТолькоУчетные, 0, СтрокаТабличнойЧасти.КоличествоУчет);
СтрокаТабличнойЧасти.ЕдиницаИзмерения = Выборка.ЕдиницаХранения;
СтрокаТабличнойЧасти.Коэффициент      = Выборка.КоэффициентЕдиницыХранения;
СтрокаТабличнойЧасти.СуммаУчет        = Выборка.Сумма;
СтрокаТабличнойЧасти.Сумма            = ?(ТолькоУчетные, 0, Выборка.Сумма);
СтрокаТабличнойЧасти.Цена             = ?(СтрокаТабличнойЧасти.КоличествоУчет = 0, 0, СтрокаТабличнойЧасти.Сумма / СтрокаТабличнойЧасти.КоличествоУчет);

Если Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда
СтрокаТабличнойЧасти.ЦенаВРознице = Выборка.ЦенаВРознице;
Иначе
СтрокаТабличнойЧасти.Качество     = Выборка.Качество;
КонецЕсли;

// сумма регл. будет заполнена по данным бух учета
//СтрокаТабличнойЧасти.СуммаРегл        = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТабличнойЧасти.Сумма, ВалютаУпрУчета,
//    мВалютаРегламентированногоУчета, КурсУпрУчета, 1, КратностьУпрУчета, 1);

СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
Если УчитыватьСерии Тогда
СтрокаТабличнойЧасти.СерияНоменклатуры = Выборка.СерияНоменклатуры;
КонецЕсли;

КонецЦикла;

// рассчитаем сумму по регл. учету
ПерезаполнитьУчетныеКоличестваРегл(ПостроительОтчета, Истина);

КонецПроцедуры // ЗаполнитьПоОстаткамНаСкладе()

Оффлайн Rasty

  • *****
  • Сообщений: 989
  • РЕПУТАЦИЯ: 139
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
в цикле допишите
СтрокаТабличнойЧасти.Родитель = Выборка.Номенклатура.Родитель;

После цикла

Товары.Сортировать("Родитель Возр");

если выдаст ошибку метод объекта не обнаружен то:
Копия = Товары.Выгрузить();
Копия.Сортировать("Родитель Возр");
Товары.Загрузить(Копия);


Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Tesla

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
:lol: Оно! Пасиба :)
Добавлено: 16 Окт 2015, 10:24

а как получить текстовую ссылку в виде  "Магазин\МолочныеПродукты\Сыры\ПитерскийМолокозавод"  ?

Последний раз редактировалось: Tesla; 16 Окт 2015, 10:24. Причина: Объединение сообщений

Оффлайн Rasty

  • *****
  • Сообщений: 989
  • РЕПУТАЦИЯ: 139
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
вы имеете ввиду навигационную ссылку? или что то другое?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Tesla

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Ссылку, сообщающую о положении в справочнике номенклатуры.

Оффлайн Rasty

  • *****
  • Сообщений: 989
  • РЕПУТАЦИЯ: 139
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
такого общего метода нет, так что придется варганить своими силами
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Tesla

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Вот так извратился:
Строка(Строка.Номенклатура.Родитель.Родитель.Родитель.Родитель)+"\"+Строка(Строка.Номенклатура.Родитель.Родитель.Родитель)+"\"+Строка(Строка.Номенклатура.Родитель.Родитель)+"\"+Строка(Строка.Номенклатура.Родитель)

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
А что, справочник имеет ограничение по уровню иерархии?


Теги:
 

Сортировка журнала документа по полю "ВидДокумента"

Автор greenLissРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 3088
Последний ответ 25 Июл 2014, 16:45
от greenLiss
сортировка списка в Форме Выбора Печатных Форм Объекта

Автор evgi73Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 5858
Последний ответ 16 Май 2012, 15:38
от evgi73
После обновления в динамическом списке пропала сортировка по наименованию

Автор Arseniy AgeevРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 410
Последний ответ 25 Фев 2017, 18:33
от Arseniy Ageev
Сортировка и кнопка настроить список в табличной части

Автор olegspectrРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 3753
Последний ответ 15 Июл 2015, 10:49
от MuI_I_Ika
Сортировка колонок таблицы значений (на форме) по их наименованиям

Автор Св ЧРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 411
Последний ответ 30 Сен 2017, 16:40
от Св Ч

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
61 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 163
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal