Суть такова: Есть документ "задание" в котором есть реквизит "Номенклатур"а и "Количество". Движение в регистр "Задание" Приход. Есть документ "Выпуск" у которого такие же реквизиты и движение Расход.
Вот каков вопрос: В документе "Выпуск" есть поле ссылающееся на документ "формаВыбора" в которой отражаются остатки регистра "Задание" на ТекущаяДата(), и возможно из этого списка выбрать значение в строку...
Как это сделать? Пробовал мутаборить в форме выбора запросом, но ничего из этого не вышло...
Есть справочник, есть обработка. В обработке ТЧ, с реквизитом ссылающимся на этот справочник. Нужно сделать так, чтоб по нажатию кнопки открывалась форма (существующего) элемента справочника, с наименованием в ТЧ.
За пару часов попыток что то получить вот что вышло (соответственно не работает, видимо в этом виде и не будет).
&НаКлиенте Процедура ОбработатьЦены(Команда) ЭлементСтроки = КакаяТоХерня;//Ссылка на элемент ТЧ обработки ПараметрыФормы = Новый Структура("Ключ", ПараметрыФормыСправочника(ПараметрыФормыСправочника(ЭлементСтроки))); ОткрытьФорму("Справочник.СоставРецептурыПВХ.Форма.ФормаЭлемента", ПараметрыФормы); КонецПроцедуры
&НаСервереБезКонтекста Функция ПараметрыФормыСправочника(Наименование) СоставРецептурыПВХ = Справочники.СоставРецептурыПВХ.НайтиПоНаименованию(Наименование); Возврат СоставРецептурыПВХ; КонецФункции
Оконечный результат вот такой (должен быть): Набивается ТЧ строками, по нажатию кнопки должны отработать команды для тех элементов которые набиты в ТЧ... Напомню что это не документ, это обработка...
В процессе перебора всех возможных вариантов натыкался на "не является объектным типом" Поле не найдено и так далее...
Тут я обрабатываю ТЧ стправочника, что точно делать не нужно...
Примерно поясню что пытаюсь сделать:
Есть документ, в котором ТЧ затраты. Есть справочник в котором находятся эти затраты (что то типа заполнить по умолчанию). Элементов справочника будет много. Необходимо по нажатию кнопки заполнить ТЧ документа, содержимым ТЧ справочника, с учетом того что наименование элемента заранее известно.
Тут моя вина что не уточнил одно обстоятельство! Обращаться буду к элементу справочника, в котором ТЧ содержит данные. Как быть тут? Как обратиться к элементу справочника?
Вообще совсем потерялся. Тема поднималась не однократно, но опять таки спрошу. Как заполнить таб часть документа из тч справочника.
1С8.3.11, управляемые формы, конфигурация самописная.
Задача такова: Есть документ, в котором имеется ТЧ "затраты" и есть кнопка "заполнить". Имеется справочник, с названием "справочник1" в нем ТЧ "затраты". Как заполнить тч затраты документа, данными из справочника? Никаких условий и отборов не нужно. Всё что есть в справочнике, должно попасть в документ.
Процедура ИмпортироватьЦеныНажатие(Элемент) Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = "Выберите имя файла для чтения"; Диалог.МножественныйВыбор = Ложь; Диалог.Фильтр = "Файл MS Excel (.xlsx)| *.xlsx"; //Диалог.Фильтр = "Все файлы (*.*)| *.*";
Если Не Диалог.Выбрать() Тогда Сообщить("Файл для обработки не выбран!"); Иначе //подключаемся к Excel ФайлДанных = Диалог.ПолноеИмяФайла; Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ФайлДанных); Состояние("Обработка файла Microsoft Excel..."); Исключение Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!"); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки;
Попытка //Открываем необходимый лист Excel.Sheets(1).Select(); // лист 1, по умолчанию Исключение //Закрываем Excel Excel.ActiveWorkbook.Close(); Excel = 0; Сообщить("Файл " + Строка(ФайлДанных) + " не соответствует необходимому формату! Первый лист не найден!"); Возврат; КонецПопытки;
//Получим количество строк и колонок. //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1); Если Версия = "8" Тогда ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count; ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13); Иначе ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row; ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column; КонецЕсли;
ИмпртЦен.Очистить();
Попытка //Если случится ошибка, то закроем файл, чтобы не висел в процессах Для Сч = 2 По ФайлСтрок Цикл Состояние("Обрабатывается строка " + Строка(Сч) + " из " + Строка(ФайлСтрок)); Если НЕ СокрЛП(Excel.Cells(Сч, 1).Value) = "" Тогда НоваяСтрока = ИмпртЦен.Добавить(); НоваяСтрока.Номенклатура = СокрЛП(Excel.Cells(Сч, 1).Text); НоваяСтрока.Цена = СокрЛП(Excel.Cells(Сч, 2).Text); //НоваяСтрока.ТестовоеЧисло1 = СокрЛП(Excel.Cells(Сч, 3).Value); //НоваяСтрока.ТестовоеЧисло2 = СокрЛП(Excel.Cells(Сч, 4).Value); //НоваяСтрока.ТестовоеЧисло3 = СокрЛП(Excel.Cells(Сч, 5).Value); //НоваяСтрока.ТестовоеЧисло4 = СокрЛП(Excel.Cells(Сч, 6).Value); //НоваяСтрока.ТестовоеЧисло5 = СокрЛП(Excel.Cells(Сч, 7).Value); //НоваяСтрока.ТестовоеЧисло6 = СокрЛП(Excel.Cells(Сч, 8).Value); //НоваяСтрока.ТестовоеЧисло7 = СокрЛП(Excel.Cells(Сч, 9).Value); //НоваяСтрока.ТестоваяДата = СокрЛП(Excel.Cells(Сч, 10).Value); КонецЕсли; КонецЦикла; Исключение //Закрываем Excel Excel.ActiveWorkbook.Close(); Excel.Quit(); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки;
Документ "Заказ Покупателя" делает движения дописанными полями в регистр накопления. Имеется отчет, который вытягивает из него все необходимые данные.
Так же на форме документа добавлена кнопка "проверить корректность данных".
В данном случае по нажатию кнопки открывается отчет. Задумка такова - нажимаем на кнопку, по номеру документа получаем содержимое регистра с нужными ресурсами.
Мной найдено и в обработчик события "ПриОткрытии" добавлено вот что:
Процедура ПриОткрытии(ЭлементыФормы, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Форма = ПолучитьФорму("Документ.ЗаказПокупателя.Форма.ФормаДокумента"); НомерЗаказа = Форма.Номер; Для Каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НомерЗаказа") И ЭлементОтбора.ВидСравнения = ВидСравнения Тогда КомпоновщикНастроек.Настройки.Отбор.Элементы.Удалить(ЭлементОтбора); КонецЕсли; КонецЦикла; НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПолеОтбора = Новый ПолеКомпоновкиДанных("НомерЗаказа"); НовыйЭлементОтбора.ЛевоеЗначение = ПолеОтбора; НовыйЭлементОтбора.Использование = Истина; НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит; НовыйЭлементОтбора.ПравоеЗначение = НомерЗаказа; Форма.Открыть(); КонецПроцедуры
Вручную вместо НовыйЭлементОтбора.ПравоеЗначение = НомерЗаказа; пишу НовыйЭлементОтбора.ПравоеЗначение = "123"; нормально происходит отбор по номеру 123, что означает что отбор работает и я как то не правильно пытаюсь получить "НомерЗаказа".
Помогите получить номер в отбор. Из одной формы в другую нормально получалось реквизит отправить, но с СКД и формами отчетов как то завис!
Vofka @ Сегодня, 13:09
, Вот тут вообще ничего не понял. Вернее понял, но и не понял! А, можно хоть какой то кусок кода для примера? Буду крайне признателен!
Напроч потерялся! А, что если имеется общая форма, модальная, на которой есть реквизит, и есть форма документа в которую необходимо передать этот реквизит (приОткрытии, если это новый)... Форма = синтаксис помощник не дает выйти на ОбщаяФорма, или общиеФормы...
Lexveritas @ Сегодня, 17:32
,
Вот что примерно накидал, но ничего не выходит...
Процедура ПриОткрытии(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если ЭтоНовый() Тогда Контролер = ПользователиИнформационнойБазы.ТекущийПользователь(); Форма= ПолучитьФорму("ОбщаяФорма.РабочееМестоОТККПП"); Форма.ТекущаяСмена = "Что тут должно быть?"; Форма.Открыть(); Смены = ???; Иначе КонецЕсли;
КонецПроцедуры
Нужно каким то чудом из общей формы значение "текущаяСмена" перенести в форму документа "Смены"
sava1 @ Сегодня, 7:54
, Касательно основной формы я уже доехал, за что весьма признателен! Открывается та форма которая мне необходима, но... Документ "такой то" создание... При попытке открыть существующий... В любом случае создается новый документ, который мне не нужен! А, задача в том, чтоб открыть существующий документ в определенной форме.
Вашпе совсем забыл дополнить то, что это не УФ, а обычное приложение. УПП...
И, вроде как нет. Есть общая форма, в ней ссылки на гору разных форм списков, из формы списка нужно открыть существующий документ. Ну и указать в какой форме открыть...
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!