Получить строку в форме списка 1с
Пусть у нас есть есть документ ПриходнаяНакладная с табличной частью Состав . Для этого документа необходимо реализовать подбор номенклатур в табличную часть. Должна быть возможность переносить в документ несколько номенклатур за раз. То есть сначала пользователь подбирает номенклатуры в определенную таблицу, а затем по команде «Перенести в документ» данные из этой таблицы переносятся в табличную часть документа. При переносе в табличную часть, если номенклатура уже была добавлена ранее, нужно увеличить количество в этой строке на значение, указанное в подборе.
Рассмотрим два способа решения этой задачи: без обращения к серверу и с обращением к серверу.
Без обращения к серверу
Создадим форму списка у справочника Номенклатура не назначая ее основной. Добавим реквизит формы ПодобранныеНоменклатуры (тип ТаблицаЗначений ) и разместим соответствующий элемент формы. Для полей динамического списка ЭтоГруппа и Ссылка установим флаг ИспользоватьВсегда . Чуть позже станет понятно, для чего.
Все действия выбора будут сводиться к добавлению строки в таблицу ПодобранныеНоменклатуры элементов динамического списка. Если элемент уже был добавлен в таблицу, то увеличиваем его количество. Код обработки выбора элемента списка номенклатуры:
Форма подбора номенклатур вызывается из формы документа ПриходнаяНакладная по команде Подбор :
Когда в форме выбора необходимые номенклатуры подобраны, выполняется команда ПеренестиКлиент :
Теперь подобранные номенклатуры доступны в обработчике ОбработкаВыбора элемента формы документа:
С обращением к серверу
Отличия в реализации подбора будут в этом случае только в передаче данных в документ и, затем, обработки подобранных номенклатур в документе. Вот таким образом будет выглядеть команда передачи данных в документ из подбора:
Обработчик события ОбработкаВыбора элемента формы документа:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш Excel файл как Внешний источник данных 16
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих
Еще в этой же категории
Как обновить динамический список или реквизит на форме клиента? 22
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором? 18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка? 16
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма ~ Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора ~ Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами
Здравствуйте, есть справочник, иерархический, открываю его форму списка, нажимаю на какую нибудь строку, и эту выбранную строку мне надо передать в параметры запроса? Запрос получает для этой активной строки всякие данные.
Наименование
Строка1
строка2
строка3
Вот, в зависимости от выбранной строки, надо передать ее в параметры запроса?
(6) Ну вот смотрите.
Делаете команду на форме списка. В модуле объекта у вас должна быть какая то экспортная процедура
Процедура в модуле объекта
Вот если просто то вот так
(10) Вот смотрите у вас должна быть функция которая проверяет можно ли редактировать объект или нет по ссылке на элемент справочника. Функция возвращает истина если может и ложь если нет.
Так вот, есть ваша процедура которая все проверяет
Эту самую функция вы вызываете на форме списка. И эту жу функцию вызывайте в процедуре ПриЗаписи(Отказ)
(4) в модуле объекта? нет! у вас же нету там списка формы. В модуль объекта вы можете передать эту строку
(5)Получается в модуле формы списка получить текущую строку, и передать ее в модуль объекта, а затем в параметры запроса?
Текущую строку я ж буду получать на клиенте? Или это текущие данные получаются на клиенте? Выходит же ошибка что текущие данные не доступны на сервере.
Можете примерно сказать порядок действий? Если не сложно, спасибо!
(6) Ну вот смотрите.
Делаете команду на форме списка. В модуле объекта у вас должна быть какая то экспортная процедура
Процедура в модуле объекта
Вот если просто то вот так
(9)Это все я сделал, Все работает, все проверяется, но, теперь в модуле объекта есть Процедура ПриЗаписи(Отказ)
Мне надо там вызвать эту функцию, и в зависимости от ее результата, ставить отказ = истина.
Но я не знаю что туда передавать в качестве параметра? Как мне быть?
или же надо вызвать процедуру из модуля формы в модуле объекта
(10) Вот смотрите у вас должна быть функция которая проверяет можно ли редактировать объект или нет по ссылке на элемент справочника. Функция возвращает истина если может и ложь если нет.
Так вот, есть ваша процедура которая все проверяет
Эту самую функция вы вызываете на форме списка. И эту жу функцию вызывайте в процедуре ПриЗаписи(Отказ)
&НаСервере
Процедура КомандаНаСервере()
ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
Объект = ТекущаяСтрока.ПолучитьОбъект();
Объект.ЧтоТоДелает(ТекущаяСтрока);
(5)Вообще опишу всю суть того, что надо сделать. может будет полезно.
В иерархическом справочнике, при создании группы, указывается своего рода ответственный за эту группу, ее подгруппы, и все подчиненные элементы.
Человек указанный в самой верхней группе, получает доступ на редактирование этих групп, элементов и тд.
и получается если человек выбрал какую то группу, надо эту группу(Строку) передать в параметры запроса, получить для этой группы ее самую верхнюю группу, проверить указан ли этот человек там в поле ответственый, если не указан, то не давать ему редактировать подгруппы и элементы.
либо если через выбор
В принципе, зачем Вам это все делать в модуле объекта, сделайте в модуле формы, там также есть перед записью.
(13)Дело в том что, в справочнике нет формы элемента или формы группы, они генерируются сами, а создавать формы я не хочу, скорее нельзя даже.
Поэтому я, передаю в параметры функции текстроку из формы списка, и в модуле объекта ПриЗаписи(), Вызываю эту функцию, в зависимости от ее результата, не даю записывать. Вот собственно и все.
Функция в модуле объекта:
Процедура в модуле объекта в которой надо вызвать функцию " ВозможностьРедактированияУслуг(СсылкаНаЭлемент) "
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш Excel файл как Внешний источник данных 16
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих
Еще в этой же категории
Как обновить динамический список или реквизит на форме клиента? 22
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором? 18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка? 16
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма ~ Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора ~ Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами
Табличное поле предоставляет свойства ТекущиеДанные и ТекущаяСтрока . Отличие между этими свойствами состоит в том, что свойство ТекущиеДанные содержит значения считанных данных текущей строки табличного поля, а свойство ТекущаяСтрока содержит значение, идентифицирующее строку.
Следует отметить, что свойство ТекущиеДанные содержит коллекцию значений текущей строки, соответствующую коллекции колонок отображаемого динамического списка, при этом если нужного поля нет в текущих данных, то его можно добавить в коллекцию полей списка используя метод Добавить() коллекции колонок списка.
Свойство ТекущиеДанные предназначено для получения значений колонок текущей строки, а свойство ТекущаяСтрока для получения и установки текущей строки табличного поля.
Следует понимать, что для объектных данных (Справочник, Документ и т.д.) в качестве значения свойства ТекущаяСтрока используется ссылка на объект базы данных. Соответственно при обращении к свойствам этого значения будет выполняться считывание объекта базы данных.
Типичной ошибкой является обращение к данным строки с использованием свойства ТекущаяСтрока . В этом случае будет выполняться считывание данных объекта из базы данных, что может существенно снизить производительность работы табличного поля. Например, приведенный ниже фрагмент текста программы является неэффективным:
Рекомендуется для обращения к данным объекта использовать свойство ТекущиеДанные . Правильный фрагмент приведен ниже:
Если есть идентификатор текущей строки (т.е. свойство ТекущаяСтрока ), можно получить ТекущиеДанные . И наоборот:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Читайте также: