Поставлена задача сделать отдельный интерфейс для ТерминалаСбораДанных (подключение через RDP). Разработана стартовая форма 240*238, убрано все лишнее, запуск в режиме рабочего стола, навигация кнопками переключения по закладкам (страницам). На каждой закладке сокращенный список на определенный вид документа.
Задумано, что при клике по строке нужного документа должна открываться форма документа, но не штатная, а особым образом построенная под размер экрана 240*238. Я создал дополнительную форму для документа ПриходныйСкладскойОрдер и пытаюсь в процедуре списка
парам = новый Структура; парам.вставить("Ключ",ТекСсылка); ОткрытьФорму("Документ.ПриходныйСкладскойОрдер.Форма.ФормаТСД",парам);
Если в коде изменить "ФормаТСД" на "ФормаДокумента", все нормально открывается (стандартная форма документа). Подскажите пожалуйста, что я делаю не так?
salton @ Сегодня, 12:45
, К сожалению так не работает, такая же ошибка.
Цитата(Petre @ 05.10.17, 12:59)
Какое значение имеет свойство "Данные" формы "ФормаТСД"?
Простите, но я не совсем понял, что за "Данные"? Если имеется ввиду если открыть в конфигураторе этот документ и на закладке "Данные", то: 8 реквизитов документа и табличная часть. Для создания этой формы я ФормуДокумента скопировал и просто перестроил расположение элементов под маленький экран, ничего не добавлял и не выбрасывал.
Попробовал в свойствах документа, в разделе Форма, на закладке Дополнительные, указать в качестве дополнительной формы документа свою форму ФормаТСД, но и это не помогло. А собственно для чего нужно это Дополнительные, для каких целей используется?
Группа: Местный
Сообщений: 2908
Из: Київ, Україна
Спасибо сказали: 1159 раз
Рейтинг: 1244.5
Если вы не собираетесь пока использовать стандартную форму, переименуйте ее, а свою назовите стандартно и сделайте основной. Кто его знает, что там творится в защищенных модулях.
Допрацьовую: - "Бухгалтерія для України 2.1"; - "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".
Petre @ Сегодня, 9:40
, Стандартная форма используется так сказать в обычном режиме, а эта форма будет использователся на экране ТерминалаСбораДанных Motorola MC909x. Помнится где-то у меня была "открывашка" для закрытых модулей, попробую поискать и вскрыть.
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0
Цитата
А собственно для чего нужно это Дополнительные, для каких целей используется?
Для конфигураций, использующих тонкий и толстый интерфейсы одновременно. Так можно назначить основную форму для каждого вида интерфейса без дополнительного кода.
Правильно поставленный вопрос содержит до 90% ответа.
Нашел "открывашку" для закрытых модулей. Если она правильно разблокировала и расставила по строкам, то на строке 1535 закрытого модуля содержится следующая строка
Что-то я не совсем понял, для чего вообще данная функция, в которой просто перепресваиваются параметры? Чисто ради того, чтобы все основные операции проходили через закрытый модуль, который просто проверяет есть ли ключик и если нет то блочит работу.
Petre @ Вчера, 9:21
, Пытаюсь дальше размотать клубок. Ниточка привела меня к заключению, что эта внешняя компонента есть ни что иное, как динамически подключаемая библиотека V8AutoServiceUkr.dll. Попробовал посмотреть что внутри при помощи OLLYDBG, но ничего там не увидел, искал по строковым значениям. Пробовал получить список экспортируемых функций при помощи IMPDEF - не смогла получить список ф-й.
Спасибо всем за комментарии и помощь в поиске решения проблемы.
Я так и не нашел решения и решил переделать форму , повторно скопировав ФормуДокумента и заработало. Почему оно ранее не работало так и осталось для меня загадкой, ну да ладно.
Пока искал решение проблему, придумал другую реализацию функционала для работы из терминала сбора данных. Форму из обработки решил оставить, только убрал списки из которых думал ранее открывать документы. Вместо этого добавил табличное поле с тремя столбцами (Артикул, Номенклатура, Количество) и ПолеВвода.
Сканер будет считывать штрих-код в ПолеВвода и завершать ввод эмуляцией нажатия клавишей Ввод. В процедуре ПриИзменении происходит разбор строки на составляющие Артикул и Количество и после поиска по табличному полю добавляется в него или изменяет количество.
Процедура ПолеВвода1ПриИзменении(Элемент) Если ПустаяСтрока(пвАртикул) Тогда Предупреждение("Введите Штрих-код/Артикул"); Возврат; КонецЕсли;
БылРазделитель = Ложь; АртикулПолучен = Ложь; Кол = 0; Артикул = ""; Для Индекс=1 По СтрЧислоСтрок(Строки) Цикл ТекСтр = СтрПолучитьСтроку(Строки, Индекс); Если ПустаяСтрока(ТекСтр) Тогда // БылРазделитель = Истина; Иначе Если АртикулПолучен = Ложь Тогда Артикул = ТекСтр; АртикулПолучен=Истина; Иначе Кол = Число(ТекСтр); КонецЕсли; КонецЕсли;
КонецЦикла; Кол = ?(Кол=0, 1,Кол); Если ПустаяСтрока(Артикул) Тогда Предупреждение("Введите Артикул/Штрих-код"); Иначе НайденнаяСтрока = тпТовары.Найти(Артикул, "Артикул"); Если НайденнаяСтрока = Неопределено Тогда НомСсылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул); Если НомСсылка.Пустая() Тогда Предупреждение("Товар не найден: "+Строка(Артикул)); Иначе ЭлементыФормы.тпТовары.ДобавитьСтроку(); НовСТР = ЭлементыФормы.тпТовары.ТекущаяСтрока; НовСТР.Артикул = Артикул; НовСТР.Номенклатура = НомСсылка; НовСТР.Кол = Кол; КонецЕсли; Иначе НайденнаяСтрока.Кол = НайденнаяСтрока.Кол+Кол; КонецЕсли; КонецЕсли; КонецПроцедуры
После окончания наполнения табличного поля, его содержимое будет выгружаться в табличную часть нужного документа или нового или уже имеющегося в базе. Вид документа может быть выбран любой (Реализация, Поступление, Перемещение, Возврат, СкладскиеОрдера и т.п.). Думаю, что такой вариант сделает работу из ТСД более универсальной (можно выгружать в любой товарный документ) и не нужно делать для каждого документа дополнительную форму.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!