Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 мая 2024, 16:46

Моя Конфигурация

Автор CosmicBoy, 10 фев 2013, 21:26

0 Пользователей и 1 гость просматривают эту тему.

CosmicBoy

sadovod,
Но если переменная находится в какомто модуле формы и я запрашиваю ее из другого модуля, запустится код модуля где она находится просто как посчитается ее значение если она его получает из другого модуля? Или все же значения у переменной не будет, она будет просто определена?

Ну как оптимально... допустим в реквизите название у меня может быть 10 символов а может и 100... тогда какую она ширину установит?
И что значат чиселки при выборе ширины и высоты ячейки, символов количество?
Не понятно почему иногда изменяется ширина столбца а иногда нет при изменении значения в форме...
Да бог бы с ним, когда "набегает" в последний столбец лишние пустоты то как сдвинуть колонку последней строки... =(

sadovod

Вот честно скажу, почти никогда не устанавливал размеры элементов вручную. Один раз только подгонял размеры картинки под фотографии (кстати, так и не добился идеального результата :) ), а для текстовых полей всегда оставляю по дефолту... В конце концов, всё это - дело практики.
А насчет переменных, сложно что-то посоветовать конкретно, не зная задачи, потому как вариантов - море...
Во, вспомнил по оформлению: погуглите - есть хорошая книжка "Как создать удобное и понятное приложение в 1С-Предприятии 8.2"

CosmicBoy

Да задача то вобщем простая, я все пытаюсь организовать поиск в модуле управляемого приложения по справочнику. Думал обойти это общим модулем... Ну и этими представленными экспортными переменными )), но что-то пока не как.
А книгу полистаю объязаиельно, как только более мение пойму принцип работы 1с... Видимо это будет не скоро)
Смотрю видио курс, нравится, гиковский курс.
Конспект пишу, вникаю.
Радует структурированность курса.

sadovod

Поиск по справочникам нужно делать ТОЛЬКО в серверных функциях(процедурах), и лучше запросом. Подробности завтра, ладно (сейчас мало времени)? Ну, если интересно :)

CosmicBoy

Да конечно, не горит, просто так сразу не понятно почему из модуля какой нить формы со справочником можно работать а вот в этом модуле нет.

Dethmontt

Тут как раз то все просто:
Модуль Формы справочника Номенклатура
//===============================================
//РАЗДЕЛ ПЕРЕМЕННЫХ

&НаКлиенте
//Объявим переменную
Перем МояСуперПуперПеременная Экспорт;

//КОНЕЦ РАЗДЕЛА ПЕРЕМЕННЫХ
//===============================================


//===============================================
//РАЗДЕЛ ПРОЦЕДУРЫ И ФУНКЦИИ
&НаКлиенте

Процедура ПриОткрытии(Отказ)
//Пустая процедура
КонецПроцедуры
//КОНЕЦ РАЗДЕЛА ПРОЦЕДУРЫ И ФУНКЦИИ
//===============================================


//===============================================
//РАЗДЕЛ ОСНОВНОЙ ПРОГРАММЫ

//Инициализируем переменную
МояСуперПуперПеременная = "Привет с формы справочника!";


Модуль Управляемого Приложения
Процедура ПриНачалеРаботыСистемы()

Форм = ПолучитьФорму("Справочник.Номенклатура.Форма.ФормаЭлемента");
Сообщить(Форм.МояСуперПуперПеременная);

КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

И хорошо бы больше читать справку...

Модулем называется программа на встроенном языке системы 1С:Предприятие.


Модули располагаются в заданных точках конфигурации и вызываются для выполнения в заранее известные моменты работы системы 1С:Предприятие.

Специалист, выполняющий конфигурирование системы, может использовать модули для описания сложных алгоритмов взаимодействия объектов, для которых недостаточно имеющихся в Конфигураторе визуальных средств.


Модуль формы. Каждая форма имеет модуль, в котором описывается ее поведение.

Модуль объекта (может быть только один для конкретного вида объекта). Для справочников, документов, отчетов, обработок, планов характеристик, планов счетов, планов видов расчетов существует модуль (для регистров существует модуль набора записей), не привязанный к форме - для описания процедур, связанных с объектом информационной базы (например, печать, проведение, ввод на основании).


Помимо модулей, "привязанных" к формам и объектам, существуют особые модули.

Модуль управляемого приложения располагается в корневом разделе конфигурации. В нем располагаются процедуры-обработчики событий, которые инициализируются при старте и окончании работы системы с установленным в настройках конфигурации режима запуска "Управляемое приложение и обычное приложение". В модуле управляемого приложения возможно объявление переменных, а также объявление и описание процедур и функций, которые будут доступны в любом модуле конфигурации (кроме модуля внешнего соединения). Их доступность также обеспечивается для неглобальных общих модулей с установленным свойством Клиент (управляемое приложение). В контексте модуля управляемого приложения доступны экспортируемые процедуры и функции общих модулей.

Модуль внешнего соединения предназначен для размещения в них текстов функций и процедур, которые могут вызываться в сессии внешнего соединения (требуется использовать ключевое слово "Экспорт").

Модулем сеанса называется модуль, который автоматически выполняется при старте системы 1С:Предприятие 8 в момент загрузки конфигурации.

Модуль сеанса предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы. Модуль сеанса всегда исполняется в привилегированном режиме в кластере серверов 1С:Предприятия 8.
Модуль сеанса не содержит экспортируемых процедур и функций и может использовать процедуры из общих модулей конфигурации.

Модуль обычного приложения (может быть только один) располагается в корневом разделе конфигурации и который автоматически выполняется при старте системы 1С:Предприятие в момент загрузки конфигурации. В нем располагаются процедуры-обработчики событий, которые инициализируются при старте и окончании работы системы с установленным в настройках конфигурации режима запуска "Обычное приложение". В модуле приложения помещаются процедуры, которые необходимо выполнять при запуске системы 1С:Предприятие, а также глобальные (экспортируемые) процедуры, которые могут вызываться из любого другого модуля конфигурации (кроме общих модулей). В палитре свойств корневого объекта конфигурации не показывается, если в настройках конфигурации режима запуска "Управляемое приложение и обычное приложение".

Помимо процедур и функций, в модуле приложения могут размещаться глобальные переменные, доступные из любых модулей конфигурации.

Общие модули предназначены для размещения в них текстов функций и процедур, которые могут вызываться из любого другого модуля конфигурации (требуется использовать ключевое слово "Экспорт"). Для работы с общими модулями предназначена ветвь "Общие модули" дерева объектов конфигурации.

Экспортируемые переменные, процедуры и функции модуля приложения недоступны в общих модулях.

Экспортируемые процедуры и функции общих модулей доступны в других общих модулях и модуле приложения.

В общих модулях нельзя располагать переменные.

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Фигня какая то.
В справке написано что приведенный мною выше КОД (пример) не должен работать

Модули управляемых форм
Модуль состоит из набора процедур и функций. Переменные модуля и тело модуля не допускаются.

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

CosmicBoy

Dethmontt,
Работает, только мне понять не только как к форме обратиться а к элементам справочника, его реквизитам.... т.е. нечто 
справочники.<НаимСправочника>.НайтиПоНаименованию(...);

sadovod

CosmicBoy,

НайтиПоРеквизиту (FindByAttribute)
Синтаксис:
НайтиПоРеквизиту(<ИмяРеквизита>, <ЗначениеРеквизита>, <Родитель>, <Владелец>)
Параметры:
<ИмяРеквизита> (обязательный) Тип: Строка.
Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и строк произвольной длины.
<ЗначениеРеквизита> (обязательный) Тип: Произвольный.
Значение реквизита, по которому должен выполняться поиск.
...
Возвращаемое значение: Тип: СправочникСсылка.
Ссылка на найденный элемент справочника. Если не существует ни одного элемента с требуемым значением реквизита, то будет возвращена пустая ссылка.
Описание:
Осуществляет поиск элемента по значению реквизита.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Если существует несколько элементов с указанным значением реквизита, то будет найдет только один из них.
Для реквизитов типа Строка поиск осуществляется по точному соответствию.
Пример:

СтрокаНаименования = "Доллары США";
Валюты = Справочники.Валюты;
НайденнаяСсылка = Валюты.НайтиПоРеквизиту("ПолноеНаименование",
                                           СтрокаНаименования);
Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда
    Сообщить("Валюты """ + СтрокаНаименования + """ еще нет.");
Иначе
    Сообщить("Нашли такую.");
КонецЕсли;

Добавлено: 27 фев 2013, 20:52


Читайте синтакс-помощник - источник знаний :)
ЗЫ
Но и там иногда бывают ошибки, как совершенно правильно заметил уважаемый Dethmontt

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск