igmig65 @ Сегодня, 3:28
, Вопрос не об этом. А как выполнить открытие именно нужной группы справочника при щелчке мышкой по определенной колонке с привязкой к справочнику Номенклатура в табличной части документа. На другом форуме ребята посоветовали использовать предопределенную процедуру ПриНачалеРедактированияСтроки().
И код для открытия нужной папки примерно такой
Перем Параметр; Справ = СоздатьОбъект("Справочник.Номенклатура"); Если Справ.НайтиПоКоду("10350", 0) = 1 Тогда ОткрытьПодбор("Справочник.Номенклатура",ФормаПодбора,Параметр); Параметр.ИспользоватьРодителя(Справ.ТекущийЭлемент()); или Параметр.АктивизироватьОбъект(Справ.ТекущийЭлемент()); КонецЕсли;
Dartvader111 @ 19.09.19, 13:44
, Немного не разобрался. Но вот набросал код. НайтиПоКоду указан код нужной группы, которую нужно открыть сразу в подборе
Процедура ПодборУслуги(СправочникПодбора,ФормаПодбора="ФормаВыбора") Перем Параметр; Параметр = Форма.Параметр; Если СправочникПодбора.НайтиПоКоду("10350", 0) = 1 Тогда Если СправочникПодбора.Выбран()=1 Тогда НужнаяГруппа = СправочникПодбора.ТекущийЭлемент(); СправочникПодбора.ИспользоватьРодителя(НужнаяГруппа,0); АтивизироватьОбъект(СправочникПодбора.ТекущийЭлемент()); КонецЕсли; КонецЕсли; // открываем форму подбора
Dartvader111 @ 19.09.19, 13:44
, И у меня еще вопрос. Я так понял, что-то подобное будет работать при вызове этой процедуры через элемент формы типа Кнопка. А вот как выполнить такую процедуру через нажатие в определенной колонке табличной части документа, которой привязан справочник номенклатуры, например, в таком документе как Расходная накладная??? Там тоже появляется ФормаВыбора со списком элементов.
Здравствуйте. Платформа 7.70.027, ТИС 7.70.032. Есть необходимость при подборе из справочника номенклатуры в табличную часть документа сразу производить выбор из определенной группы элементов. Причем только для этого документа. Подскажите, куда копать?
В принципе, применяемые методы те же и мой код подходит для 7.7.
Да, Вы правы, что код из 8-ки в принципе подходит. Но в конкретном исполнении под 7-ку все таки необходим метод РекизитШапки(), что я собственно и искал в мануале. Про него у меня была только одна строка и то в самом конце раздела Метаданные. Синоним реквизита мне необходим в заголовке окна, полученного через процедуру ВвестиСтроку().
Процедура ВводПоля(РеквизитДокумента, НомерРеквШапки) Перем НК; РеквДок = Метаданные.Документ("КлиническийПротоколУЗИ_ЩЖ").РеквизитШапки(НомерРеквШапки); НК = РеквизитДокумента; Если ВвестиСтроку(НК, "Введите значение " + РеквДок.Синоним, 999, 1,) = 1 Тогда РеквизитДокумента = НК; Иначе Возврат; КонецЕсли; КонецПроцедуры
Но, к сожалению, решение этой задачи не принесло удовлетворения. Оказалось, что штатными средствами 1С 7.7 вообще нормально не работает с многострочными текстовыми реквизитами. А у меня задача допилить эту конфу под мед учреждение, с функциями регистратуры, лаборатории и учета работы врачей, в частности оформления и хранения клинических протоколов исследований (УЗИ). В них подразумевается применение длинных и желательно многострочных запичей отдельных показателей исследований (длина символов 500 -700). Согласитесь, что работать с такой длинной строкой неудобно.
И вот в этой теме прозвучала мысль о наркотике о Formex. Не хочется прикручивать С++ с его Tbox, сишку знаю и умею очень мало. Может направите меня куда рыть, и что курить, чтобы получить в форме документа нормальный механизм редактирования длинных текстовых реквизитов?
Хотя, наверное, это уже мне пора на форум FormEx )))
Vladal @ Сегодня, 16:23
, У меня ТиС 7.70.032. Спасибо за очень развернутый и подробный ответ. Вы предлагаете разобрать Идентификатор документа на подобие синонима. Но мне необходимо разобраться в механизме обращения к синониму и комментарию реквизитов шапки документа, которые прямо указаны в конфигурации. И скорее всего через Метаданные, и именно в в среде 1С 7.7. В 8-ке, очевидно, этот механизм описан явно, а вот, что касается 7-ки в мануале описано только до уровня Идентификатора документа.
Здравствуйте. Есть необходимость получить синоним реквизита документа для его последующего отображения в заголовке окна редактирования значения этого реквизита
Процедура ВводПоля(РеквизитДокумента) // РеквизитДокумента передается в процедуру Перем Инф;
//Синоним = РеквизитДокумента.Синоним; // вот здесь не знаю как обратиться к нужному реквизиту, а точнее к его синониму
Инф= РеквизитДокумента; Если ВвестиСтроку(Инф, "Введите значение " + Синоним, 999, 1,) = 1 Тогда РеквизитДокумента = Инф; Иначе Возврат; КонецЕсли; КонецПроцедуры
Подскажите как правильно обращаться к Синониму или к Комментарий реквизита шапки, ведь для чего-то они присутствуют в базе. Пробовал через метаданные, но понял только как получить Синоним идентификатора документа, а мне нужен синоним реквизита шапки.
Prospero @ Сегодня, 23:12
, Старнненько.У меня если оставить запятую вместо точки, то в числовое поле попадает только целая часть, дробную отсекает и оставляет просто нули и их количество соответствует заявленной точности поля. Но если точка, тогда все в порядке и работает четко. Но все равно благодарю за содействие и помощь.
хотя если реквизит тип Число с дробной частью, тогда число из списка выбирается только его целая часть. А надо, чтобы было полностью и целая м дробная части. Не знаю как это победить не переводя сам реквизит в тип Строка ((
А вот как быть если обрабатываем список для реквизита тип Число, еще и с дробной частью? ))
Цитата(leonid_gun @ 15.01.19, 23:41)
А вот как быть если обрабатываем список для реквизита тип Число, еще и с дробной частью? ))
при выборе "педальки" список выводится, но при выборе значения из списка, выпадает экранная цифровая калава, стандартная для цифрового поля ввода с кнопкой. Нужно менять тип на Строку? Но хотелось бы оставить ограничение по разрядности для проверки ввода от руки.
awp @ Сегодня, 15:09
, Можно принять как вариант. Есть у реквизита документа на вкладке Дополнительно такой параметр как "Имеет кнопку выбора". Для чего его можно использовать? Может на этой кнопке можно родить еще один вариант решения выбора из списка?
Prospero @ Сегодня, 14:49
, Перечисления не подойдут, т.к таких реквизитов в форме будет до 50 штук. А видов документов, в которых такое надо применить будет не один десяток.
Здравствуйте. ТиС 032. платформа 7.7 027 Есть необходимость создать на форме реквизит документа тип Строка, который будет связан с выпадающим списком, из которого можно выбрать одно значение из многих для этого реквизита, с последующим сохранением этого значения. И при открытии сохраненного документа этот реквизит отображал сохраненное значение. Как можно правильно такое реализовать?
Платформа 7.70.027, конфа допиленная ТиС 032. Нужно некоторые элементы справочника имеющие признак Архив перенести из корня справочника в папку Архив, специально для этого заведенную. Выборка работает, но в момент замены Родителя возникает ошибка перепозиционирования. Помогите найти косяк.
Пробовал делать эту же операцию через ВыбратьЭлементы(), она работет, но только до момента когда перенесен первый найденный элемент справочника. Далее выборка сбивается и ее нужно инить заново. Так как-то криво. поэтому решил через запрос.
Процедура ВыполнитьАрхивациюЗапросом() Перем Архив; Архив = ""; Спр = СоздатьОбъект("Справочник.Пациенты"); Если Спр.НайтиПоНаименованию("Архив") = 1 Тогда // проверяем наличие папки Архив, куда будем переносить архивные карточки Если Спр.ЭтоГруппа() = 1 Тогда Архив = Спр.ТекущийЭлемент(); // получаем родителя (назначаем папку архивирования) Сообщить("Папка для архивирована выбрана - " + Архив); КонецЕсли; Иначе Предупреждение("Папка Архив в текущем справочнике не найдена"); Возврат; КонецЕсли; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) //|Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |Пациенты = Справочник.Пациенты.ТекущийЭлемент; |Группировка Пациенты без групп; |Условие(Пациенты.ВАрхиве.Получить(РабочаяДата()) = Перечисление.ДаНет.Да); |Условие(Пациенты.ПометкаУдаления()=0); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; //Если Запрос.Пациенты.НайтиПоНаименованию("Архив") = 1 Тогда // Если Запрос.Пациенты.ЭтоГруппа() = 1 Тогда // Архив = Запрос.Пациенты.ТекущийЭлемент(); // получаем родителя (назначаем папку архивирования) // Сообщить("Папка для архивирована выбрана - " + Архив); // КонецЕсли; //Иначе // Предупреждение("Папка Архив в текущем справочнике не найдена"); // Возврат; //КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл Если Запрос.Пациенты.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли; Если (Запрос.Пациенты.ПринадлежитГруппе(Архив) = 0) И (Запрос.Пациенты.ВАрхиве.Получить(РабочаяДата()) = Перечисление.ДаНет.Да ) Тогда Запрос.Пациенты.Родитель = Архив; // ???? здесь ошибка - Объект не может быть перепозиционирован! Запрос.Пациенты.Записать(); Сообщить(" Карточка клиента " + Запрос.Пациенты.Наименование + " имеет пометку для Архив. Берем и переносим...."); КонецЕсли; Состояние("Идет поиск карточек клиента для Архива...");
Ваша правда, доками и библиотекой недостатка нет. Но входе экспериментов выясняется, что 7-ке почему-то нельзя получить ответы на команды, описанные в доке по dll-ке. Так
fp = CreateObject("ecrmini.t400"); Сообщить("сервер "+fp); // выдает, что ОЛЕ.It400
выдает либо 0 (я так понимаю - не открыт) или -1 (тут я с трудом догадываюсь, что порт открыт) Попадались советы использовать команду get_last_result(), но я так и не понял как ее к объекту прикрутить fp.get_last_result() - выдет ошибку, что метод не найден. А в слепую, как понимаете., не комфортно работать ни кассиру, ни нам, по телефону потом утирать слезы
Всем доброго. Маленькая организация купила ФП МИНИ-ФП54.01, работает на 7.7.027 Бухучет. Прошу помочь с обработкой для работы с фискальным принтером, необязательно указанном в сабже. Буду благодарен и за черновые варианты,остальное допилю сам. Прошу из-за недостака времени делать все с нуля
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!