![]() |
|
Перенос табличных частей (ОФ) | ☑ | ||
---|---|---|---|---|
0
JuixyJes
30.04.19
✎
10:24
|
Имеется документ Заявка, в нем 3 табличных части, 1 главная и 2 подчиненных, в последних 2х стоит фильтр по Уникальному идентификатору. Как перенести в документ Расчет эти 3 табличных части, но чтоб фильтр применялся уже при выборе документа заявки?
|
|||
1
Fish
гуру
30.04.19
✎
10:26
|
Предлагаю циклами.
|
|||
2
JuixyJes
30.04.19
✎
10:45
|
(1) Циклами я переношу, но фильтры по Уникальному идентификатору не работают. В заявке он работает при активации строки
|
|||
3
Fish
гуру
30.04.19
✎
10:48
|
(2) "фильтры по Уникальному идентификатору не работают" - Показывай код, как делаешь отбор.
|
|||
4
JuixyJes
30.04.19
✎
10:50
|
Процедура ЗаявкаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Данные = ЭлементыФормы.Заявка.ТекущаяСтрока; Если НоваяСтрока Тогда Данные.ИД = Новый УникальныйИдентификатор; КонецЕсли; КонецПроцедуры Процедура МатериалыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Данные = ЭлементыФормы.Заявка.ТекущаяСтрока; ТекДанные = ЭлементыФормы.Материалы.ТекущаяСтрока; Если НоваяСтрока Тогда ТекДанные.ИД = Данные.ИД; КонецЕсли; КонецПроцедуры Процедура ЗаявкаПередУдалением(Элемент, Отказ) Данные = ЭлементыФормы.Заявка.ТекущаяСтрока; Отбор = Новый Структура("ИД",Данные.ИД); Масс = Материалы.НайтиСтроки(Отбор); масс1 = Технологии.НайтиСтроки(Отбор); Для каждого Строка из Масс Цикл Материалы.Удалить(Строка); КонецЦикла; Для каждого Строка из масс1 Цикл Технологии.Удалить(Строка); КонецЦикла; КонецПроцедуры Процедура ЗаявкаПриАктивизацииСтроки(Элемент) Данные = ЭлементыФормы.Заявка.ТекущаяСтрока; Если Данные = Неопределено Тогда Возврат; КонецЕсли; ЭлементыФормы.Материалы.ОтборСтрок.ИД.Значение = Данные.ИД; ЭлементыФормы.Материалы.ОтборСтрок.ИД.Использование = истина; ЭлементыФормы.Технологии.ОтборСтрок.ИД.Значение = Данные.ИД; ЭлементыФормы.Технологии.ОтборСтрок.ИД.Использование = истина; М=Материалы.Итог("Сумма"); Т=Технологии.Итог("Сумма"); С = Т + М; ЭлементыФормы.Надпись3.Заголовок = "Всего: " + Строка(С) + "р Материалы: " + Строка(М) + "р Технологии: " + Строка(Т)+ "р"; КонецПроцедуры Процедура ТехнологииПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Данные = ЭлементыФормы.Заявка.ТекущаяСтрока; ТекДанные = ЭлементыФормы.Технологии.ТекущаяСтрока; Если НоваяСтрока Тогда ТекДанные.ИД = Данные.ИД; КонецЕсли; КонецПроцедуры Вот, пожалуйте) |
|||
5
Fish
гуру
30.04.19
✎
10:54
|
(4) Не, покажи код переноса в документ Расчёт.
|
|||
6
Fish
гуру
30.04.19
✎
10:54
|
+(5) У тебя же такая цель, судя по (0)? Перенести данные из одного документа в другой?
|
|||
7
JuixyJes
30.04.19
✎
10:58
|
Процедура ЗаявкаПриИзменении(Элемент,ДанныеЗаполнения, СтандартнаяОбработка,Расчет)
//Заполнение Расчета Автор = Заявка.Автор; Коментарий = Заявка.Коментарий; СпособОплаты = Заявка.СпособОплаты; Заявка = Заявка.Ссылка; ЗаявкаТЧ.Очистить(); Для Каждого ТекСтрокаЗаявка Из Заявка.Заявка Цикл НоваяСтрока = ЗаявкаТЧ.Добавить(); НоваяСтрока.Количество = ТекСтрокаЗаявка.Количество; НоваяСтрока.ПлановыйСрокГот = ТекСтрокаЗаявка.ПлановыйСрокГот; НоваяСтрока.Продукция = ТекСтрокаЗаявка.Продукция; НоваяСтрока.РазмерФормат = ТекСтрокаЗаявка.РазмерФормат; НоваяСтрока.СрокОригиналМ = ТекСтрокаЗаявка.СрокОригиналМ; НоваяСтрока.фПлановыйСрокГот = ТекСтрокаЗаявка.фПлановыйСрокГот; НоваяСтрока.фСрокОригиналМ = ТекСтрокаЗаявка.фСрокОригиналМ; КонецЦикла; Материалы.Очистить(); Для Каждого ТекСтрокаМатериалы Из Заявка.Материалы Цикл НоваяСтрока = Материалы.Добавить(); НоваяСтрока.Количество = ТекСтрокаМатериалы.Количество; НоваяСтрока.Материал = ТекСтрокаМатериалы.Материал; НоваяСтрока.Сумма = ТекСтрокаМатериалы.Сумма; НоваяСтрока.Цена = ТекСтрокаМатериалы.Цена; КонецЦикла; Технологии.Очистить(); Для Каждого ТекСтрокаТехнологии Из Заявка.Технологии Цикл НоваяСтрока = Технологии.Добавить(); НоваяСтрока.Количество = ТекСтрокаТехнологии.Количество; НоваяСтрока.КТУ = ТекСтрокаТехнологии.КТУ; НоваяСтрока.Сумма = ТекСтрокаТехнологии.Сумма; НоваяСтрока.Технологии = ТекСтрокаТехнологии.Технологии; НоваяСтрока.Цена = ТекСтрокаТехнологии.Цена; КонецЦикла; //Заполнение информации об оплате СТ=Технологии.Итог("Сумма"); СМ=Материалы.Итог("Сумма"); С=СТ+СМ; Сумма = С; Выб = Документы.Оплата.Выбрать(); Пока выб.Следующий() Цикл Опл = Выб.СуммаОплаты; КонецЦикла; //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасчетОплатыОбороты.Расчет КАК Расчет, | РасчетОплатыОбороты.СуммаЗаказаОборот КАК СуммаЗаказаОборот, | РасчетОплатыОбороты.СуммаЗаказаПриход КАК СуммаЗаказаПриход, | РасчетОплатыОбороты.СуммаЗаказаРасход КАК СуммаЗаказаРасход |ИЗ | РегистрНакопления.РасчетОплаты.Обороты КАК РасчетОплатыОбороты |ГДЕ | РасчетОплатыОбороты.Расчет = &Расчет"; Запрос.УстановитьПараметр("Расчет", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); //Если ВыборкаДетальныеЗаписи.Количество()<> 0 Тогда Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЭлементыФормы.Стоимость.Заголовок = "Стоимость: " + Строка(ВыборкаДетальныеЗаписи.СуммаЗаказаПриход)+ "р"; ЭлементыФормы.Оплачено.Заголовок = "Оплачено: " + Строка(ВыборкаДетальныеЗаписи.СуммаЗаказаРасход)+ "р" ; ЭлементыФормы.Остаток.Заголовок = "Остаток: " + Строка(ВыборкаДетальныеЗаписи.СуммаЗаказаОборот)+ "р" ; Ост = ВыборкаДетальныеЗаписи.СуммаЗаказаОборот; КонецЦикла; //Иначе // ЭлементыФормы.Стоимость.Заголовок = "Стоимость: " + Строка(С)+ "р"; // // ЭлементыФормы.Оплачено.Заголовок = "Оплачено: " + Строка(С)+ "р"; // // ЭлементыФормы.Остаток.Заголовок = "Остаток: 0р" ; // // Ост = 0; //КонецЕсли; ВыбД = Документы.Заявка.Выбрать(); Пока ВыбД.Следующий() Цикл ЭлементыФормы.Клиент.Заголовок = "Клиент: " + Строка(ВыбД.Клиент)+ " ИНН: " + Строка(ВыбД.Клиент.ИНН); ЭлементыФормы.Телефоны.Заголовок = "Дом.Тел: " + Строка(ВыбД.Клиент.ТелефонД)+ " Раб.Тел: " + Строка(ВыбД.Клиент.ТелефонР)+ " Моб.Тел: " + Строка(ВыбД.Клиент.ТелефонМ)+ " Факс: " + Строка(ВыбД.Клиент.Факс); ЭлементыФормы.КонтЛицо.Заголовок = Строка(ВыбД.КонтактноеЛицо); ЭлементыФормы.ЭлектронныеКонтакты.Заголовок = "E-m@il: " + Строка(ВыбД.Клиент.Email)+ " ICQ: " + Строка(ВыбД.Клиент.ICQ); КонецЦикла; КонецПроцедуры Процедура ЗаявкаТЧПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Данные = ЭлементыФормы.ЗаявкаТЧ.ТекущаяСтрока; Если НоваяСтрока Тогда Данные.ИД = Новый УникальныйИдентификатор; КонецЕсли; КонецПроцедуры Процедура МатериалыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Данные = ЭлементыФормы.ЗаявкаТЧ.ТекущаяСтрока; ТекДанные = ЭлементыФормы.Материалы.ТекущаяСтрока; Если НоваяСтрока Тогда ТекДанные.ИД = Данные.ИД; КонецЕсли; КонецПроцедуры Процедура ЗаявкаТЧПередУдалением(Элемент, Отказ) Данные = ЭлементыФормы.ЗаявкаТЧ.ТекущаяСтрока; Отбор = Новый Структура("ИД",Данные.ИД); Масс = Материалы.НайтиСтроки(Отбор); масс1 = Технологии.НайтиСтроки(Отбор); Для каждого Строка из Масс Цикл Материалы.Удалить(Строка); КонецЦикла; Для каждого Строка из масс1 Цикл Технологии.Удалить(Строка); КонецЦикла; КонецПроцедуры Процедура ЗаявкаТЧПриАктивизацииСтроки(Элемент) Данные = ЭлементыФормы.ЗаявкаТЧ.ТекущаяСтрока; Если Данные = Неопределено Тогда Возврат; КонецЕсли; ЭлементыФормы.Материалы.ОтборСтрок.ИД.Значение = Данные.ИД; ЭлементыФормы.Материалы.ОтборСтрок.ИД.Использование = истина; ЭлементыФормы.Технологии.ОтборСтрок.ИД.Значение = Данные.ИД; ЭлементыФормы.Технологии.ОтборСтрок.ИД.Использование = истина; КонецПроцедуры Процедура ТехнологииПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Данные = ЭлементыФормы.ЗаявкаТЧ.ТекущаяСтрока; ТекДанные = ЭлементыФормы.Технологии.ТекущаяСтрока; Если НоваяСтрока Тогда ТекДанные.ИД = Данные.ИД; КонецЕсли; КонецПроцедуры Ну вот так |
|||
8
JuixyJes
30.04.19
✎
11:25
|
+ (7) Видимо увидев ЭТО все в ужасе убежали:D
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |