8.х Работа с ТЧ в Документах

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем ProfforG, 21 ноя 2011.

  1. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    Вопрос следующий... Есть документ, в этом документе ТЧ - Товары. В ней есть колонки Товар и ЕдИзмерения. что в условии прописать чтобы при выборе например в Товар "Щебень", в ЕдИзмерения автоматически выставилось "т".

    делал такой обработчик:

    Код:
    &НаКлиенте  
    Процедура ТоварыТоварПриИзменении(Элемент)
    СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
    ДанныеОТоваре = ПолучитьДанныеОТоваре(СтрокаТЧ.Товар);
    Элементы.ТоварыМаркаСмеси.Доступность = ДанныеОТоваре.ЭтоГруппа; 
    Если СтрокаТЧ.Товар = "Щебень" Тогда
    //СтрокаТЧ.ЕдиницыИзмерения = Объект.ЕдиницыИзмерения.Ссылка(1);
    //СтрокаТЧ.ЕдиницыИзмерения = "т";
    //Сообщить("т");
    КонецЕсли;
    КонецПроцедуры
    
    &НаСервереБезКонтекста
    Функция ПолучитьДанныеОТоваре(Товар)
    ДанныеОТоваре = Новый Структура;
    ДанныеОТоваре.Вставить("ЭтоГруппа", Товар.ЭтоГруппа);
    Возврат ДанныеОТоваре;
    КонецФункции
    
    даже сообщение не выскакивает. косяк в условии. как будет правильно?
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Единица измерения где хранится?
    Обычно это реквизит справочника "Номенклатура". Т.е. для каждого товара устанавливается единица измерения.
    Тогда в документе при выборе товара надо просто вытащить значение единицы измерения так же, как значение реквизита "ЭтоГруппа".
    Код:
    &НаКлиенте  
    Процедура ТоварыТоварПриИзменении(Элемент)
    СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
    ДанныеОТоваре = ПолучитьДанныеОТоваре(СтрокаТЧ.Товар);
    Элементы.ТоварыМаркаСмеси.Доступность = ДанныеОТоваре.ЭтоГруппа;
    СтрокаТЧ.ЕдИзмерения = ДанныеОТоваре.ЕдИзмерения;
    КонецПроцедуры
    
    &НаСервереБезКонтекста
    Функция ПолучитьДанныеОТоваре(Товар)
    ДанныеОТоваре = Новый Структура;
    ДанныеОТоваре.Вставить("ЭтоГруппа", Товар.ЭтоГруппа);
    ДанныеОТоваре.Вставить("ЕдИзмерения", Товар.ЕдИзмерения);
    Возврат ДанныеОТоваре;
    КонецФункции
    
  3. Diego
    Offline

    Diego Любитель 1С Команда форума

    Регистрация:
    3 апр 2009
    Сообщения:
    966
    Симпатии:
    2
    Баллы:
    29
    Добавлю про условие. У вас условие проверяет, равняется ли выбранная номенклатура строкой "Щебень".
    Условие не выполняется, поскольку это не строка, а запись из справочника "Номенклатура".
    Правильно будет так:

    Код:
    Если СтрокаТЧ.Товар = Справочники.Номенклатура.НайтиПоНаименованию("Щебень") Тогда
    
  4. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Вообще, да, но в данном конкретном случае условие не нужно :)
    Прикиньте, если в справочнике 10 000 позиций номенклатуры...
    Какое будет условие??? :angry:

    Ну если в целом для информации, то да :))))
  5. Diego
    Offline

    Diego Любитель 1С Команда форума

    Регистрация:
    3 апр 2009
    Сообщения:
    966
    Симпатии:
    2
    Баллы:
    29
    Именно :angry:
  6. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    а я что-то даже не подумал про то, чтобы доп поле в справочнике сделать... %)

    "всё гораздо проще чем ты думаешь"(с)
  7. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    Всем привет!

    Вопрос следующий, можно сделать вот так...?!:

    Документ, в нём есть 2 ТЧ: Товары и Рейсы. в ТЧ.Товары я добавляю какой-нибудь товар (предположим их несколько, каждый в отдельной строке) ну и по нему данные ввожу, потом открываю вкладку ТЧ.Рейсы и в этой вкладке, в зависимости от выбранной строки(товара) в ТЧ.Товары я создаю рейсы для отгрузки товаров с предприятия, при чём этих строк может быть несколько - т.е. несколько отгрузок по одному товару.

    потом снова захожу в ТЧ.Товары, выбираю другой уже товар, захожу в ТЧ.Рейсы она уже пустая для текущего товара, ввожу для него рейсы отгрузки и т.д.

    Т.е. при выборе товара в ТЧ.Товары в ТЧ.Рейсы для текущего товара должна быть только инфа.


    ИЛИ проще сделать будет чтобы в ТЧ.Рейсы выбирался в столбце один из товаров , который есть в ТЧ.Товары и для него дальше организовывать выгрузку товара?!?!?

    p.s. хотелось бы 1 вариантом реализовать...
  8. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    А рейсы - это что? В смысле какой тип данных имеют?
    Это документ? Или просто строковое описание? Или еще что-то?
  9. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    Рейсы это вторая ТЧ
  10. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Это я понял. ))
    Там какие колонки есть? Какого типа? Это ссылка на справочник или другой документ? Или это просто строка, куда с клавиатуры забивается информация о рейсе? Или как?

    Я почему спрашиваю...
    Надо же как-то связать товар с рейсами...Это ведь главная цель?
    И вот пока я смутно представляю, как это сделать. Особенно не зная структуры документа.))
  11. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29

    Посмотреть вложение 9248 как-то так...

    т.е. по идее мы должны к строке из ТЧ.Товары привязать строки созданные в ТЧ.Рейсы.

    Создаём в ТЧ.Товары новый товар, в ТЧ.Рейсы для этого товара новые строки с необходимыми рейсами создаём.

    Вложения:

  12. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Нее, таким образом строки из разных табличных частей не связать.
  13. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    а если схитрить....взять создать элемент на форму, сделать его невидимым, при выделении строки из ТЧ.Товары, в тот элемент будет помещаться "товар такой-то", а потом от этого элемента уже в ТЧ.Рейсы плясать?
  14. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Да нее, тут дело в другом.
    Допустим, вынесем мы элемент на форму.
    Каким образом связать этот элемент с рейсами? В таб части "Рейсы" нет ни одного поля, которое бы как-то указывало на товар.
    Вот поэтому я просто не представляю, как их связать.

    Во-вторых, даже если найдем способ связать, я не уверен, что можно в табличной части убрать данные по другим товарам (отобразить данные только по нужному товару).
    В обычном приложении можно было делать отбор в таб части. В управляемом приложении я что-то такой возможности не нашел.
    Т.е. данные в таб части в любом случае будут отображаться все.
  15. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    вот дрянь то...буду думать как реализовать...
  16. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    Доброго времени суток!

    в какой обаботчик это пихать?! если я при нажатии кнопки "добавить" хочу сделать ("ПередНачаломДобавления" это обработчик определён для ТЧ)??! :

    Нужно из выделенной строки ТЧ Товары передать программно в ТЧ Рейсы в колонку ПолнНаим

    тем самым я свяжу 2 ТЧ как бы по ключу - по наименованию. а потом тогда и сортировку можно делать. получится так, Андрей?
  17. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Честно сказать, я не понимаю сути того, что надо сделать)))
    Что значит "передать"?
    Вот создается документ...Обе табчасти пустые...
    Добавляем в первую табчасть строку и .....???....
    Что-то должно в этот момент происходить со второй таб частью???
  18. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    в тч товары добавили товар и всё по нему - эта строка выделена, т.е. в коде она текущая будет, открываем вкладку тч рейсы, добавляем по этому товару рейсы т.е. автоматически при текущей строке в тч товары в тч рейсы будет создаваться ключ и в этот ключ будет записываться полное наименование товара, т.к. заводу этот столбец не нужен, я его невидимым просто сделаю.

    в общем та ситуация, про которую я выше писал.
  19. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Может, тогда уж не полное наименование писать, а ссылку на товар.
  20. TopicStarter Overlay
    ProfforG
    Offline

    ProfforG Опытный в 1С

    Регистрация:
    31 окт 2011
    Сообщения:
    139
    Симпатии:
    1
    Баллы:
    29
    разницы собственно никакой, самое главное чтобы ключом связать две тч

Поделиться этой страницей