» | Казахстанский Бухгалтерский форум www.balans.kz | Копирование реквизитов и элементов табличной части справочника в соответствующий тип |
|
Показать сообщения: Начиная со старых .::. Начиная с новых |
Автор: | daysemsk |
Добавлено: | #1  Чт Авг 07, 2008 15:23:35 |
Заголовок сообщения: | Копирование реквизитов и элементов табличной части справочника в соответствующий тип |
Привет всем! Стоит задача скопировать реквезит Контрагент (проставляемый в документе), в текстовое поле добавленное мною(тип строка(100)), также необходимо скопировать элемент Номенклатура в табличной части документа , также в поле добавленное мною. Говоря простым языком нужно, чтобы при перепроведений документа найменование Контрагент скопировалось в пустое текстовое поле, такое же действие должно пройзоити в табличной части док-та с реквезитом Номенклатура. Я примено представляю как это все будет, элементарный цикл, наверное с таблицами значений или списками значений . но как это все увязать по порядку ???? Добавлено спустя 1 минуту 47 секунд: аналогичная задача стоит в 1с 8.1 .... |
Автор: | d.Fedor |
Добавлено: | #2  Чт Авг 07, 2008 16:27:53 |
Заголовок сообщения: | |
Так понимаю поле у тебя на форме и в него нужно скопировать указаные значения? |
Автор: | daysemsk |
Добавлено: | #3  Чт Авг 07, 2008 16:33:17 |
Заголовок сообщения: | |
да именно, поле на форме и в него надо скопировать значение Контрагент(выбираемый ессено с одноименного справочника) в пустое текстовое поле, тоже самое действие надо пройзвести в табличной части документа с реквезитом номенклатура, то есть скопировать его в добавленное пустое поле в табличной части документа. |
Автор: | т.Сема | ||
Добавлено: | #4  Чт Авг 07, 2008 17:51:52 | ||
Заголовок сообщения: | |||
Может быть я ошибаюсь, но у меня подобная задача стояла при запоминании предыдущего контрагнета в договоре долевого стр-ва. Ибо при записи нового долевика старый долевик в договоре затирался. Суть - предыдущего контра перкидывает в реквизит Предыдущий контр, и долоняем его как строку в общий список предыдущих контров....
Здесь ПредыдущийКонтрагент - реквизит шапки тип спр-к. контрагенты, ПредыдущиеКонтрагенты - реквизит шапки тип строка. Он то и показывается в диалоге - типа "Сидоров, Петров..."...мона и в журнале показать также.... Может быть каг то таг ? Прием универсален... |
Автор: | daysemsk |
Добавлено: | #5  Пт Авг 08, 2008 08:49:54 |
Заголовок сообщения: | |
Спасибо большое !!! процедура супер, а такая простая, только я ее вставил в обработку проведения и строчку (ПредыдущийКонтрагент<>Контрагент) за менил на (ПредыдущийКонтрагент=Контрагент) мне не надо было его сравнивать на неравенство, задача стояла просто скопировать элемент. Но все равно большое спасибо !!! |
Автор: | daysemsk |
Добавлено: | #6  Пт Авг 08, 2008 11:34:23 |
Заголовок сообщения: | |
Да совсем забыл такое же действие необходимо пройзвести в табличной части документа с реквезитом Номенклатура(также создан дополнительный реквезит КопияНоменк ), предыдущий пример прекрасно работает, НО только с первой записью, попробовал циклом , не идет или я цикл неправильно делаю??? Вот он Процедура ПриЗаписи() Если (ПустоеЗначение(МаркаЦемента)=1) Тогда МаркаЦемента=МаркаЦемента; ИначеЕсли (ПустоеЗначение(МаркаЦемента)=0) Тогда Если (МаркаЦемента = МаркаЦемента) Тогда Если (ПустоеЗначение(СокрЛП(Строка(КопияНоменк)))=0) Тогда Док = СоздатьОбъект("Документ.ОтгрузкаЖДВагонов"); Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку(МаркаЦемента)=1 цикл КопияНоменк=СокрЛП(Строка(КопияНоменк))+"; "+СокрЛП(Строка(МаркаЦемента)); МаркаЦемента=МаркаЦемента; конеццикла; ИначеЕсли (ПустоеЗначение(СокрЛП(Строка(КопияНоменк)))=1) Тогда КопияНоменк=СокрЛП(Строка(МаркаЦемента)); МаркаЦемента=МаркаЦемента; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
Автор: | d.Fedor | ||
Добавлено: | #7  Пт Авг 08, 2008 12:07:26 | ||
Заголовок сообщения: | |||
А строки тебе нужно выбрать из табличной части... Блин, забываю семерку напрочь :) |
Автор: | daysemsk |
Добавлено: | #8  Пт Авг 08, 2008 12:28:13 |
Заголовок сообщения: | |
Да нужно из табличной, делаю цикл не получаеться..... |
Автор: | d.Fedor |
Добавлено: | #9  Пт Авг 08, 2008 13:37:51 |
Заголовок сообщения: | |
Блин, не помню как в семерке. Короче ты говориш ему брать из дока, а сказать нужно брать из табличной части |
Автор: | daysemsk |
Добавлено: | #10  Пт Авг 08, 2008 13:48:18 |
Заголовок сообщения: | |
спасибо всем за участие . мне подсказал коллега по работе . вот так работает ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл КопияНоменк =СокрЛП(Строка( МаркаЦемента.Наименование)); КопияНоменк = СокрЛП(Строка(КопияНоменк))+"; "+СокрЛП(Строка(МаркаЦемента)); МаркаЦемента = МаркаЦемента; КонецЦикла; |
Автор: | daysemsk |
Добавлено: | #11  Пн Авг 11, 2008 14:35:33 |
Заголовок сообщения: | |
Да и еще один момент, наверное этот вопрос мне надо было бы в разделе Разработка 8.0 , но я так подумал, что мне надо бы продолжить тему здесь. теперь стоит задача немного дргуая. в одном докумнте есть два реквезита в шапочной части документа Контрагент(тип.Справочник) и КопияКонтр(тип.Строка). Задача. необходимо скопировать значение реквезита КопияКонтр в Контрагент. обратная задача решаеться достаточно легко. Примерно вот так КопияКонтр = ""; КопияКонтр = СокрЛП(Строка(Контрагент.Наименование)); а как сделать наоборот ????? |
Автор: | d.Fedor |
Добавлено: | #12  Пн Авг 11, 2008 14:53:22 |
Заголовок сообщения: | |
:) Контрагент = НайтиПоНаименованию(СокрЛП(КопияКонтр)); Только как быть если однотипных наименований несколько? Поэтому имхо такие задачи решать следует по другому, без текстовых полей. |
Автор: | daysemsk |
Добавлено: | #13  Пн Авг 11, 2008 18:00:41 |
Заголовок сообщения: | |
Не получаеться таким способом, ну никак мне не удаеться подцепится к какому либо свойству/методу этого текстового реквезита . что делать ? |