Колонка таблицы значений в строку + представление номеров накладных с экономией места в строке. Делалось для печатной формы ТТН

06.03.11

Задачи пользователя - Адаптация типовых решений

ФункцияПолучениеДанныхТаблицыИПреобразование(Документ)



Перем ТекущийЭлемент;

Перем СледующийЭлемент;

Перем ПервыйПроход;

Перем ФормируемаяСтрока;

Перем СчетчикПошел;

Перем ЦиклТолькоНачался;

Перем ПоследнийЭлемент;

Перем Список;



Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ

|ПутевойЛистРеестрДокументов.ДополнительныйНомер2 КАК ДополнительныйНомер2

|ИЗ

|Документ.ПутевойЛист.РеестрДокументов КАК ПутевойЛистРеестрДокументов

|ГДЕ

|ПутевойЛистРеестрДокументов.Ссылка = &Ссылка

|

|УПОРЯДОЧИТЬ ПО

|ДополнительныйНомер2";



Запрос.УстановитьПараметр("Ссылка", Документ);

Знак = ДопустимыйЗнак.Неотрицательный;

ТЗСДопНомерами2 = Новый ТаблицаЗначений;

ТЗСДопНомерами2.Колонки.Добавить("ДопНом2",,Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10, 0, Знак)));





Результат = Запрос.Выполнить();



Если Не  (Результат.Пустой()) Тогда

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

НоваяСтрока = ТЗСДопНомерами2.Добавить();

НоваяСтрока["ДопНом2"] = Выборка.ДополнительныйНомер2;

КонецЦикла;

ФормируемаяСтрока = "";

СледующийЭлемент = Число(Выборка.ДополнительныйНомер2) + 1;

СамыйПоследнийЭлемет = Число(Выборка.ДополнительныйНомер2);

ПервыйПроход = Истина;

ЦиклТолькоНачался = Истина;

ПропуститьЧисло = Ложь;



Для Каждого СтрТЧ Из ТЗСДопНомерами2 Цикл



ТекущийЭлемент = Число(СтрТЧ.ДопНом2);



Если (Число(ТекущийЭлемент) <> Число(СледующийЭлемент)) И ПервыйПроход Тогда     

ФормируемаяСтрока = ФормируемаяСтрока + ТекущийЭлемент; 

ЦиклТолькоНачался = Истина;

Счетчик = 0;

КонецЕсли;



Если (Число(ТекущийЭлемент) = Число(СледующийЭлемент)) И ПервыйПроход Тогда     

ФормируемаяСтрока = ФормируемаяСтрока + ТекущийЭлемент; 

ЦиклТолькоНачался = Истина;

Счетчик = 0;

КонецЕсли;



Если (Число(ТекущийЭлемент) = Число(СледующийЭлемент)) И (Не ПервыйПроход)  Тогда 

Если ЦиклТолькоНачался И Не ПропуститьЧисло Тогда 

ФормируемаяСтрока = ФормируемаяСтрока + " - ";

ЦиклТолькоНачался = Ложь;

Счетчик = Счетчик + 1;

Иначе

ПропуститьЧисло = Истина;

Счетчик = Счетчик + 1;

КонецЕсли;

КонецЕсли;



Если (Число(ТекущийЭлемент) <> Число(СледующийЭлемент)) И (Не ПервыйПроход) Тогда 

Если Не ЦиклТолькоНачался И ПропуститьЧисло Тогда 

ФормируемаяСтрока = ФормируемаяСтрока + ПоследнийЭлемент;

ИначеЕсли Не ЦиклТолькоНачался И Не ПропуститьЧисло И Счетчик = 1 Тогда 

ФормируемаяСтрока = ФормируемаяСтрока + ПоследнийЭлемент;

КонецЕсли;



ФормируемаяСтрока = ФормируемаяСтрока + ", " + ТекущийЭлемент;

ЦиклТолькоНачался = Истина;

ПропуститьЧисло = Ложь;

Счетчик = 0;

КонецЕсли;



СледующийЭлемент = Число(ТекущийЭлемент) + 1;

ПоследнийЭлемент = ТекущийЭлемент;

ПервыйПроход = Ложь;

КонецЦикла;

Если Счетчик <> 0 Тогда  

ФормируемаяСтрока = ФормируемаяСтрока + СамыйПоследнийЭлемет;

КонецЕсли;

Список = ФормируемаяСтрока;

Иначе

Список = "";

КонецЕсли;

Возврат Список;



КонецФункции

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Адаптация типовых решений 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

31800 руб.

29.06.2023    9650    29    15    

37

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

9600 руб.

17.06.2025    1652    5    0    

5

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Расширение для УНФ, чтобы автоматически отменять старые резервы и не мешалть эффективно продавать.

9000 руб.

02.08.2023    6353    23    5    

39

Адаптация типовых решений Бухгалтер 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Разработка для упрощения процедуры передачи данных о выплатах для конфигурации 1С:ЗиКГУ. Данное расширение предоставляет возможность экспортировать данные «Распоряжения» непосредственно из документа "Ведомость в банк" в формате XML.

3840 руб.

13.11.2024    2387    3    4    

4

Универсальные функции Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    44038    dimanich70    83    

160

Универсальные функции Программист 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    6498    6    John_d    13    

58

Универсальные функции Программист Стажер 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    53941    atdonya    31    

67
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Bober777 26 06.03.11 10:16 Сейчас в теме
Мне интересно, может у других участников есть другие предложения для решения данной задачи. Поправьте меня, если я в чем то не прав. Но данная функция уже год, как работает в одной компании. 8-)
2. Поручик 4596 06.03.11 21:31 Сейчас в теме
3. Bober777 26 07.03.11 18:29 Сейчас в теме
да у меня и нет ни каких вопросов, может кто-то предложит другой метод решения вопроса, не такой как у меня)
4. ildarovich 8041 09.03.11 01:43 Сейчас в теме
Вот более простой и универсальный метод решения той же задачи
Прикрепленные файлы:
Bober777; +1 Ответить
5. Bober777 26 09.03.11 09:09 Сейчас в теме
(4)Замечательно, спасибо ildarovich, :D. Делимся опытом молодые специалисты будут смотреть, и расти на наших ошибках и победах.
Для отправки сообщения требуется регистрация/авторизация