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

Хранилище

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

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



> Программное копирование строки ТЧ (разбивка по кол-ву)          
Constantus Подменю пользователя
сообщение 22.08.19, 14:17
Сообщение #1

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

Приветствую, Форумчане!
1с8.3.12, самопис, БСП, УФ

Имеется некий документ. В ТЧ документа есть некоторые записи, где кол-во >1.
Требуется обработкой разбить строки ТЧ, у которых кол-во больше 1 на нужное кол-во строк.

Например:
Товар 1, 34.56 денег, 5 штук... Реквизиты1, Реквизиты2,Реквизиты3

Получить:

Товар 1, 34.56 денег, 1 штук... Реквизиты1, Реквизиты2,Реквизиты3
Товар 1, 34.56 денег, 1 штук... Реквизиты1, Реквизиты2,Реквизиты3
Товар 1, 34.56 денег, 1 штук... Реквизиты1, Реквизиты2,Реквизиты3
Товар 1, 34.56 денег, 1 штук... Реквизиты1, Реквизиты2,Реквизиты3
Товар 1, 34.56 денег, 1 штук... Реквизиты1, Реквизиты2,Реквизиты3

Потом сохранить и провести документ.

Вроде есть функционал, но никак не могу сообразить как изменить кол-во у первой записи на "1", а далее добавить строки с такими-же реквизитами, только с кол-вом "1"


Попробовал:

&НаКлиенте
Процедура РазбивкаПоКолву(Команда)
    // Вставить содержимое обработчика.
    
    Для Каждого СТР из Объект.Состав Цикл
        
        Если СТР.Количество > 1 Тогда
            
        Для Счетчик = 1 По СТР.Количество Цикл
                
            НоваяСтрока = Объект.Состав.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока,СТР);
            НоваяСтрока.Количество = 1;
        КонецЦикла;    
            
        КонецЕсли;    
        
        
        
    КонецЦикла;


Но в текущей строке, где обнаружено большее количество, значение не поменяла на "1"


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

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

тз = Товары.Выгрузить();
тв = Товары.ВыгрузитьКолонки();

Для каждого строка из тз Цикл
   Для сч=1 по строка.Количество Цикл
       новаястр = тв.Добавить();
       ЗаполнитьЗначенияСвойств(нс, строка);
       новаястр.Количество=1;
   КонецЦикла;
КонецЦикла;

Товарі.Загрузить(тв);

Constantus Подменю пользователя
сообщение 22.08.19, 15:05
Сообщение #3

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

Все сработало. Спасибо, разобрался...

Странная ситуация возникла. При программном добавлении строк в ТЧ, форма не показала модифицированность.

Поэтому, если после выполнения операции изменения ТЧ, форму закрыть, то изменений в ТЧ никаких, т.е. данные не сохранены.

Почему после изменения ТЧ програмным методом 1с не понял, что нужно сохранять данные?


sava1 @ Сегодня, 18:22 * ,

У меня кнопка в ТЧ висит. Попробовал Ваш код, но говорит, что недопустимо использовать на Клиенте.
Попробовал на Сервере - вообще тишина...

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

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Constantus @ Today, 15:05 * ,
В тонком клиенте ТЗ не доступна.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Constantus Подменю пользователя
сообщение 22.08.19, 15:42
Сообщение #5

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

Поставил после кода:

ЭтаФорма.Модифицированность = Истина;

Тогда встала (*) на документе.

Но я этот код планирую задействовать не на форме документа, а в обработке. Там формы документа не будет, а нужно будет записывать программно, а модифицированности нет. Как быть, если этот код уду использовать в обработке при обращении к объекту документа?

Petre Подменю пользователя
сообщение 22.08.19, 16:45
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Constantus @ Today, 15:42 * ,
Никак не быть. Перепишите код с обращением к объекту, а не к его форме или к его данным формы.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

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


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

 

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