Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 08:41

Запись из одной ТЧ в другую!

Автор МаксимВікторович, 02 апр 2012, 23:10

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

МаксимВікторович

Добрый вечер!
Эсть две ТЧ документа....в обоих есть реквизиты (Товар и Количество)....Нужно, чтобы приИзменении Товара в первой ТЧ автоматически менялся Товар во второй ТЧ...и про Количество так же!
Не судите строго!
Все перепробывал!

Dethmontt

Строки связывай из разных таблиц каким нибудь ключом и при изменении в строки из первой ТЧ ищи строку с таким же ключом во второй ТЧ и меняй там что тебе нужно
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

МаксимВікторович

можно пример какой то, а то не совсем понятно!(

Dethmontt

Колонки Номенклатура, Цена, ключ

строка = ТЧ1.Добавить();
Строка.Номенклатура = Номен;
Строка.Цена = Цена;
Строка.ключ = 1;
Строка2 = Тч2.Добавить();
Строка2.Номенклатура = Строка.Номенклатура;
Строка2.Цена = Строка.Цена;
Строка2.ключ = Строка.ключ;


Процедура ПриИзмененииТЧ1(Элемент)

ТекСтрока = ЭлементыФормы.Тч1.ТекущиеДанные; //Для Обычного приложения
Если Не ТекСтрока = Неопределено Тогда
ТекСтрока2 = Тч2.Найти(ТекСтрока.Ключ,"Ключ");
Если Не текСтрока2 = Неопределено Тогда
ТекСтрока2.Номенклатура = ТекСтрока.Номенклатура;
ТекСтрока2.Цена = ТекСтрока.Цена;
КонецЕсли;
конецЕсли;

КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

МаксимВікторович

а если управляемое приложение, то будет типа так?

строка = Элементы.ТЧ1.Добавить();
Строка.Номенклатура = Номен;
Строка.Цена = Цена;
Строка.ключ = 1;
Строка2 = Элементы.Тч2.Добавить();
Строка2.Номенклатура = Строка.Номенклатура;
Строка2.Цена = Строка.Цена;
Строка2.ключ = Строка.ключ;

Процедура ПриИзмененииТЧ1(Элемент) //(ПриИзменении ТЧ или елемента ТЧ??))

ТекСтрока = Элементы.Тч1.ТекущиеДанные;
Если Не ТекСтрока = Неопределено Тогда
ТекСтрока2 = Тч2.Найти(ТекСтрока.Ключ,"Ключ");
Если Не текСтрока2 = Неопределено Тогда
ТекСтрока2.Номенклатура = ТекСтрока.Номенклатура;
ТекСтрока2.Цена = ТекСтрока.Цена;
КонецЕсли;
конецЕсли;

КонецПроцедуры

Dethmontt

ТекСтрока = Элементы.Тч1.ТекущиеДанные; //Ну вот тут Да
строка = Элементы.ТЧ1.Добавить(); //а тут врядли
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

МаксимВікторович

  &НаКлиенте
Процедура ТовариПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
     Если ОтменаРедактирования = Ложь Тогда
      Если НоваяСтрока  Тогда
         ТД = Элемент.ТекущиеДанные;
         ТД.Ключ = Новый УникальныйИдентификатор(); // Можно придумать и что-то свое.
         НоваяСтрокаВторойТЧ = Объект.СобівартістьПродукту.Добавить();
         НоваяСтрокаВторойТЧ.Ключ = ТД.Ключ;
         НоваяСтрокаВторойТЧ.Товар = ТД.Товар;
         НоваяСтрокаВторойТЧ.Кількість = ТД.Кількість;
         НоваяСтрокаВторойТЧ.ОдиницяВиміру = ТД.ОдиницяВиміру;
      Иначе
         ТД = Элемент.ТекущиеДанные;
         ПоискПоКлючу = Новый Структура("Ключ",ТД.Ключ);
         Массив = Объект.СобівартістьПродукту.НайтиСтроки(ПоискПоКлючу);
         Если Массив.Количество()>0 Тогда   
            СтрокаВторойТЧДляИзменения = Массив[0];
            СтрокаВторойТЧДляИзменения.Товар = ТД.Товар;
            СтрокаВторойТЧДляИзменения.Кількість = ТД.Кількість;
            СтрокаВторойТЧДляИзменения.ОдиницяВиміру = ТД.ОдиницяВиміру;
         КонецЕсли;      
      КонецЕсли;
   КонецЕсли;   

КонецПроцедуры

вот sergejK74 помого, но реквизит Кількість во вторую ТЧ записывает дважды (в 1 и 2 строки)...
Что посоветуете?

МаксимВікторович

  &НаКлиенте
Процедура ТовариПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
  Если ОтменаРедактирования = Ложь Тогда
Если НоваяСтрока  Тогда
ТД = Элемент.ТекущиеДанные;
ТД.Ключ = Новый УникальныйИдентификатор(); // Можно придумать и что-то свое.
НоваяСтрокаВторойТЧ = Объект.СобівартістьПродукту.Добавить();
НоваяСтрокаВторойТЧ.Ключ = ТД.Ключ;
НоваяСтрокаВторойТЧ.Товар = ТД.Товар;
НоваяСтрокаВторойТЧ.Кількість = ТД.Кількість;
НоваяСтрокаВторойТЧ.ОдиницяВиміру = ТД.ОдиницяВиміру;
Иначе
ТД = Элемент.ТекущиеДанные;
ПоискПоКлючу = Новый Структура("Ключ",ТД.Ключ);
Массив = Объект.СобівартістьПродукту.НайтиСтроки(ПоискПоКлючу);
Если Массив.Количество()>0 Тогда   
СтрокаВторойТЧДляИзменения = Массив[0];
СтрокаВторойТЧДляИзменения.Товар = ТД.Товар;
СтрокаВторойТЧДляИзменения.Кількість = ТД.Кількість;
СтрокаВторойТЧДляИзменения.ОдиницяВиміру = ТД.ОдиницяВиміру;
КонецЕсли;
КонецЕсли;
КонецЕсли;

КонецПроцедуры

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

МаксимВікторович

Ето sergejK74 помог!
Ето его заслуга!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск