Версия для печати темы (https://pro1c.org.ua/index.php?s=31b5761fa89c0d20e8bf005cf7b3c7cd&showtopic=65735)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Изменение данных в одной ТЧ при изменении другой ТЧ в одном документе

Автор: _kokoreva_ 08.04.21, 11:36

Добрый день!

Мучаюсь уже второй день, помогите, пожалуйста!

1С:Предприятие 8.3 Учебная версия (8.3.17.1386)

Вопрос: имеется документ, в нем есть 2 ТЧ - товары и материалы. В ТЧ товары есть колонка о количестве товара, а в ТЧ Материалы из которого состоит этот товар и необходимое количество на 1 товар. Мне необходимо сделать так, чтобы при изменении количества в ТЧ товары менялось количество материалов в ТЧ Материалы. По сути умножить КоличествоТовара на КоличествоМатериала, но как сделать это между двумя ТЧ?

Умоляю, помогите!

Автор: andreydv87 08.04.21, 12:02

_kokoreva_ @ Сегодня, 12:36 * ,
а как Вы сейчас заполняете ТЧ "Материалы"?
Добавьте в процедуру "при изменении количества товара" вызов процедуры заполнения ТЧ "Материалы".
Объект.Материалы.Очистить() и заново заполняйте.

Автор: _kokoreva_ 08.04.21, 14:26

andreydv87 @ Сегодня, 13:02 * ,
она заполняется на основании определенного справочника

Автор: logist 09.04.21, 14:49

Цитата(andreydv87 @ 08.04.21, 13:02) *
Объект.Материалы.Очистить() и заново заполняйте.

это слишком жестоко)) лучше найти нужные строки и изменить в них количество

Автор: _kokoreva_ 10.04.21, 10:40

logist @ Вчера, 15:49 * ,
А как это сделать, подскажите, пожалуйста)

Автор: logist 10.04.21, 20:49

_kokoreva_, посмотрите, практически в любой массовой конфигурации есть документ Отчет производства за смену, или Комплектация товаров, и сделайте по аналогии применимо к вашей архитектуре. Либо задавайте конкретные вопросы, сейчас ваш вопрос звучит как "сделайте за меня, еще и догадайтесь как устроена моя конфигурация"

Автор: _kokoreva_ 12.04.21, 9:16

logist @ 10.04.21, 21:49 * ,
Ну вообще в названии темы я указала конкретный вопрос: "как изменить данные в одной ТЧ при изменении другой ТЧ".

Автор: logist 12.04.21, 9:52

_kokoreva_, выше подсказали - при изменении количества Товаров меняете кол-во Материалов, я только предложил не менять всё, а менять только конкретные строки (это правильней потому что строк может быть очень много а изменить надо будет несколько, в таком случае перезаполнять всё не имеет смысла). Как минимум в одной ТЧ должна быть связь по какому-то реквизиту с другой, по этой связи ищите необходимые строки в Материалах и меняете кол-во согласно какой-то логике. Но здесь могут быть вариации в зависимости от того как у вас заполняются Материалы - сгруппировано или для каждой строки товаров. Какие-то детальные ответы дать невозможно без понимания как устроена форма документа и логика заполнения.

Автор: _kokoreva_ 12.04.21, 11:04

logist @ Сегодня, 10:52 * ,
Подскажите, пожалуйста, как следует тогда написать событие при изменении. Я просто знаю только если все реквизиты в одной ТЧ, а с двумя еще не сталкивалась.

Автор: sava1 12.04.21, 11:17

возьмите бухгалтерию, документ ГТД и посмотрите, как пересчитывается ТЧ при изменении Акциза или НДС

Автор: logist 12.04.21, 11:48

Цитата(_kokoreva_ @ 12.04.21, 12:04) *
Я просто знаю только если все реквизиты в одной ТЧ, а с двумя еще не сталкивалась.

Вы работаете с объектом, какая разница что это на самом деле - одна ТЧ или две, если знаете как работать с одной то с другой точно так же, только указываете другой объект.

Автор: andreydv87 12.04.21, 12:05

Цитата(_kokoreva_ @ 12.04.21, 10:16) *
logist @ 10.04.21, 21:49 ,
Ну вообще в названии темы я указала конкретный вопрос: "как изменить данные в одной ТЧ при изменении другой ТЧ".

Я Вам написал, из события одной ТЧ можете вызвать другую ТЧ - Объект.(ИмяТЧ).
Дальше Вам решать перезаполнять или изменять.
Я написал очистить, потому что перед этим спросил как сейчас происходит заполнение.
Самый простой вариант очистить и вызвать текущую процедуру заполнения (если она есть).

Автор: Макс1С 13.04.21, 21:41

Если совсем с начала начинать и исходя из первого поста, должна быть связь между двумя ТЧ. Если её нету, нужно сделать, например разместив реквизит Товар во второй ТЧ. При добавлении строки в ТЧ материалы, смотреть какая сейчас активная строка в ТЧ товары и таким образом заполнять этот реквизит. При активации строки Товаров необходимо устанавливать отбор по текущему товару в ТЧ материалов. Обращаться ко второй ТЧ так же как к первой, о чем писали ранее. По сути вопроса необходимо в событии при изменении в колонке "количество" в первой ТЧ найти все строки во второй (хотя бы перебором всех строк) которые относятся к текущему товару и заполнить нужную колонку перемножением соответствующих значений

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua