![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.135.202.126] |
![]() |
|
Сообщ.
#1
,
|
|
|
Документация 1с 8.х
![]() ![]() // Добавить новый вид характеристик. Если ВидМенеджеры.Пустая() Тогда ВидМенеджеры = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СоздатьЭлемент(); ВидМенеджеры.Наименование = "Менеджеры"; ВидМенеджеры.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Пользователи"); ВидМенеджеры.Записать(); КонецЕсли; // Получить нужный счет. Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1"); Если (Не Счет.Пустая()) И (Счет.ВидыСубконто.Найти(ВидМенеджеры) = Неопределено) Тогда // Добавить новый вид субконто к счету. ОбъектСчета = Счет.ПолучитьОбъект(); НовыйВидСубконто = ОбъектСчета.ВидыСубконто.Добавить(); НовыйВидСубконто.ВидСубконто = ВидМенеджеры; НовыйВидСубконто.ТолькоОбороты = Истина; НовыйВидСубконто.Суммовой = Истина; ОбъектСчета.Записать(); КонецЕсли; |
Сообщ.
#2
,
|
|
|
Как из регистра бухгалтерии "Хозрасчетный" получить обороты только по валютным счетам?
![]() ![]() ВЫБРАТЬ ХозрасчетныйОбороты.Организация КАК Организация, ХозрасчетныйОбороты.Счет КАК Счет, ХозрасчетныйОбороты.Валюта, ХозрасчетныйОбороты.СуммаОборотДт, ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт, ХозрасчетныйОбороты.СуммаОборотКт, ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, , Счет.Валютный, , , , ) КАК ХозрасчетныйОбороты УПОРЯДОЧИТЬ ПО Организация, ХозрасчетныйОбороты.Счет.Код |
Сообщ.
#3
,
|
|
|
Как выбрать в регистре бухгалтерии "Хозрасчетный" обороты по "60-ым" счетам, исключив внутренние обороты между ними?
![]() ![]() ВЫБРАТЬ ХозрасчетныйОбороты.Счет, ХозрасчетныйОбороты.СуммаОборотДт, ХозрасчетныйОбороты.СуммаОборотКт ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон , , Счет В ИЕРАРХИИ (&Счет), , , НЕ(КорСчет В ИЕРАРХИИ (&Счет)), ) КАК ХозрасчетныйОбороты УПОРЯДОЧИТЬ ПО ХозрасчетныйОбороты.Счет.Код |
Сообщ.
#4
,
|
|
|
Как реализовать метод "красного сторно" для регистра бухгалтерии?
![]() ![]() Процедура ОбработкаПроведения(Отказ, Режим) СторнируемыеДвижения = РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(СторнируемыйДокумент); Пока СторнируемыеДвижения.Следующий() Цикл Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Период = Дата; Проводка.СчетДт = СторнируемыеДвижения.СчетДт; Проводка.СчетКт = СторнируемыеДвижения.СчетКт; Для каждого Субконто Из СторнируемыеДвижения.СубконтоДт Цикл Проводка.СубконтоДт[Субконто.Ключ] = Субконто.Значение; КонецЦикла; Для каждого Субконто Из СторнируемыеДвижения.СубконтоКт Цикл Проводка.СубконтоКт[Субконто.Ключ] = Субконто.Значение; КонецЦикла; Проводка.ВалютаДт = СторнируемыеДвижения.ВалютаДт; Проводка.ВалютаКт = СторнируемыеДвижения.ВалютаКт; Проводка.ВалютнаяСуммаДт = - СторнируемыеДвижения.ВалютнаяСуммаДт; Проводка.ВалютнаяСуммаКт = - СторнируемыеДвижения.ВалютнаяСуммаКт; Проводка.КоличествоДт = - СторнируемыеДвижения.КоличествоДт; Проводка.КоличествоКт = - СторнируемыеДвижения.КоличествоКт; Проводка.НомерЖурнала = СторнируемыеДвижения.НомерЖурнала; Проводка.Организация = СторнируемыеДвижения.Организация; Проводка.Содержание = СторнируемыеДвижения.Содержание; Проводка.Сумма = - СторнируемыеДвижения.Сумма; КонецЦикла; Движения.Хозрасчетный.Записать(); КонецПроцедуры |
Сообщ.
#5
,
|
|
|
Сложные периодические расчеты
Как получить сумму начисления по конкретному виду расчета указанному сотруднику в указанном периоде? ![]() ![]() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | БУОсновныеНачисления.Результат |ИЗ | РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления |ГДЕ | БУОсновныеНачисления.ПериодРегистрации = &Период | И | БУОсновныеНачисления.ФизЛицо = &ФизЛицо | И | БУОсновныеНачисления.ВидРасчета = &ВидРасчета"; Запрос.УстановитьПараметр("Период", НачалоМесяца(Период1)); Запрос.УстановитьПараметр("ВидРасчета", ВидРасчета); Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо); |
Сообщ.
#6
,
|
|
|
Как получить сумму всех начислений указанному сотруднику в указанном периоде?
![]() ![]() ВЫБРАТЬ | БУОсновныеНачисления.Организация КАК Организация, | ПРЕДСТАВЛЕНИЕ(БУОсновныеНачисления.Организация), | БУОсновныеНачисления.ВидРасчета, | ПРЕДСТАВЛЕНИЕ(БУОсновныеНачисления.ВидРасчета), | БУОсновныеНачисления.Результат КАК Результат, | ""Основные"" КАК ВариантНачислений |ИЗ | РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления |ГДЕ | БУОсновныеНачисления.ПериодРегистрации = &НужныйПериод И БУОсновныеНачисления.ФизЛицо = &ФизЛицо | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | БУДополнительныеНачисления.Организация, | ПРЕДСТАВЛЕНИЕ(БУДополнительныеНачисления.Организация), | БУДополнительныеНачисления.ВидРасчета, | ПРЕДСТАВЛЕНИЕ(БУДополнительныеНачисления.ВидРасчета), | БУДополнительныеНачисления.Результат, | ""Дополнительные"" |ИЗ | РегистрРасчета.БУДополнительныеНачисления КАК БУДополнительныеНачисления |ГДЕ | БУДополнительныеНачисления.ПериодРегистрации = &НужныйПериод И БУДополнительныеНачисления.ФизЛицо = &ФизЛицо |ИТОГИ СУММА(Результат) |ПО ОБЩИЕ, Организация, ВариантНачислений"; |
Сообщ.
#7
,
|
|
|
Как получить таблицу перерасчетов по перерасчетам нескольких регистров?
![]() ![]() ВЫБРАТЬ ПерерасчетОсновных.ФизЛицо КАК Работник, ПерерасчетОсновных.ВидРасчета, ПерерасчетОсновных.ОбъектПерерасчета КАК Документ ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизации.ПерерасчетОсновныхНачислений КАК ПерерасчетОсновных ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПерерасчетДополнительных.ФизЛицо, ПерерасчетДополнительных.ВидРасчета, ПерерасчетДополнительных.ОбъектПерерасчета ИЗ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизации.ПерерасчетДополнительныхНачислений КАК ПерерасчетДополнительных |
Сообщ.
#8
,
|
|
|
Как для документа "НачислениеЗарплатыРаботникам" определить номера строк записей полностью вытесненных видов расчета?
![]() ![]() ВЫБРАТЬ РАЗРЕШЕННЫЕ УправленческиеНачисления.НомерСтроки КАК НомерСтроки ИЗ РегистрРасчета.УправленческиеНачисления КАК УправленческиеНачисления ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.УправленческиеНачисления.ФактическийПериодДействия(Регистратор = &парамСсылка) КАК УправленческиеНачисленияФактическийПериодДействия ПО УправленческиеНачисления.НомерСтроки = УправленческиеНачисленияФактическийПериодДействия.НомерСтроки И УправленческиеНачисления.Регистратор = УправленческиеНачисленияФактическийПериодДействия.Регистратор ГДЕ УправленческиеНачисления.Регистратор = &парамСсылка И ((УправленческиеНачисленияФактическийПериодДействия.Регистратор) ЕСТЬ NULL) |
Сообщ.
#9
,
|
|
|
Как сформировать расчетный листок сотрудника?
![]() ![]() "ВЫБРАТЬ | ВложенныйЗапрос.ФизЛицо, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ФизЛицо), | ВложенныйЗапрос.ФизЛицоПредставление КАК ФизЛицоПредставление1, | ВложенныйЗапрос.ВидРасчета, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ВидРасчета), | ВложенныйЗапрос.ВидРасчетаПредставление КАК ВидРасчетаПредставление1, | ВложенныйЗапрос.Результат КАК Результат, | ВложенныйЗапрос.ТипРасчета КАК ТипРасчета |ИЗ | (ВЫБРАТЬ | БУОсновныеНачисления.ФизЛицо КАК ФизЛицо, | ПРЕДСТАВЛЕНИЕ(БУОсновныеНачисления.ФизЛицо) КАК ФизЛицоПредставление, | БУОсновныеНачисления.ВидРасчета КАК ВидРасчета, | ПРЕДСТАВЛЕНИЕ(БУОсновныеНачисления.ВидРасчета) КАК ВидРасчетаПредставление, | БУОсновныеНачисления.Результат КАК Результат, | ""Начисления"" КАК ТипРасчета | ИЗ | РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления | ГДЕ | БУОсновныеНачисления.ФизЛицо = &ФизЛицо И БУОсновныеНачисления.ПериодРегистрации = &НужныйПериод | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | УдержанияРаботниковОрганизаций.ФизЛицо, | ПРЕДСТАВЛЕНИЕ(УдержанияРаботниковОрганизаций.ФизЛицо), | УдержанияРаботниковОрганизаций.ВидРасчета, | ПРЕДСТАВЛЕНИЕ(УдержанияРаботниковОрганизаций.ВидРасчета), | -УдержанияРаботниковОрганизаций.Результат, | ""Удержания"" | ИЗ | РегистрРасчета.УдержанияРаботниковОрганизаций КАК УдержанияРаботниковОрганизаций | ГДЕ | УдержанияРаботниковОрганизаций.ФизЛицо = &ФизЛицо И УдержанияРаботниковОрганизаций.ПериодРегистрации = &НужныйПериод) КАК ВложенныйЗапрос |ИТОГИ СУММА(Результат) |ПО ОБЩИЕ, ТипРасчета"; |
Сообщ.
#10
,
|
|
|
Как организовать сторнирование уже произведенных расчетов прошлых периодов?
![]() ![]() ТаблицаСторноЗаписей = Движения.ОсновныеНачисленияРаботниковОрганизации.ПолучитьДополнение(); Для каждого СтрокаСторно Из ТаблицаСторноЗаписей Цикл // Добавить сторно-записи в набор записей регистра. // Новая запись движений. Движение = Движения.ОсновныеНачисленияРаботниковОрганизации.Добавить(); // Заполнить свойства. Движение.ПериодРегистрации = Строка.ПериодРегистрацииСторно; Движение.ПериодДействияНачало = Строка.ПериодДействияНачалоСторно; Движение.ПериодДействияКонец = Строка.ПериодДействияКонецСторно; Движение.БазовыйПериодНачало = Строка.БазовыйПериодНачало; Движение.БазовыйПериодКонец = Строка.БазовыйПериодКонец; Движение.ВидРасчета = Строка.ВидРасчета; Движение.Сторно = Истина; // Заполнить измерения. Движение.ФизЛицо = Строка.ФизЛицо; Движение.Приказ = Строка.Приказ; Движение.Организация = Строка.Организация; // Ресурсы не заполнять, потому что здесь не происходит расчет, // только подготовка новой записи // Заполнить реквизиты. Движение.ГрафикРаботы = Строка.ГрафикРаботы; Движение.Размер = Строка.Размер; Движение.ВидУчетаВремени = Строка.ВидУчетаВремени; Движение.ПодразделениеОрганизации = Строка.ПодразделениеОрганизации; Движение.ПериодРасчетаСреднегоЗаработкаНачало = Строка.ПериодРасчетаСреднегоЗаработкаНачало; Движение.ПериодРасчетаСреднегоЗаработкаОкончание = Строка.ПериодРасчетаСреднегоЗаработкаОкончание; КонецЦикла; Движения.ОсновныеНачисленияРаботниковОрганизации.Записать(); |
Сообщ.
#11
,
|
|
|
Бизнес-процессы
Как определить бизнес процесс, в котором количество последовательных этапов определяется индивидуально на момент старта экземпляра процесса? ![]() ![]() Процедура ПередВыполнением(Отказ) Если Исполнитель.Пустая() Тогда Исполнитель = ПараметрыСеанса.ТекущийИсполнитель; КонецЕсли; ДатаВыполнения=ТекущаяДата(); КонецПроцедуры ПолучитьФорму("Маршрут").Открыть(); СтандартнаяОбработка = Ложь; Если ТочкиМаршрута.Количество() = 0 Тогда Сообщить("Не определен маршрут!!!"); Отказ = Истина; КонецЕсли; Результат = ПолучитьТочкуМаршрута().Пустая(); Функция ПолучитьТочкуМаршрута() Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ ПЕРВЫЕ 1 | НаМаршрутеТочкиМаршрута.НомерСтроки КАК НомерСтроки, | НаМаршрутеТочкиМаршрута.Склад |ИЗ | БизнесПроцесс.НаМаршруте.ТочкиМаршрута КАК НаМаршрутеТочкиМаршрута |ГДЕ | (НаМаршрутеТочкиМаршрута.Склад НЕ В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ЭтапПути.Склад | ИЗ | Задача.ЭтапПути КАК ЭтапПути | ГДЕ | ЭтапПути.БизнесПроцесс = &БизнесПроцесс )) | И | (Ссылка = &БизнесПроцесс) |УПОРЯДОЧИТЬ ПО | НомерСтроки"; Запрос.УстановитьПараметр("БизнесПроцесс", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат (Выборка.Склад); Иначе Возврат(Справочники.Склады.ПустаяСсылка()); КонецЕсли; КонецФункции ФормируемыеЗадачи[0].Склад = ПолучитьТочкуМаршрута(); ПолучитьФорму("ПутевойЛист").Открыть(); СтандартнаяОбработка = Ложь; Если ПоказанияСпидометраКонечные = 0 ИЛИ Ссылка.РасходТоплива = 0 Тогда Сообщить("Не введены данные по путевому листу!"); Отказ = Истина; КонецЕсли; |
Сообщ.
#12
,
|
|
|
Как при работе с бизнес процессами отказаться от стандартного способа формирования задачи и сформировать ее программно?
![]() ![]() Для Каждого Рецензент Из НаСогласование Цикл НоваяЗадача = Задачи.ЭтапПути.СоздатьЗадачу(); НоваяЗадача.БизнесПроцесс = Ссылка; НоваяЗадача.Пользователь = Рецензент.Рецензент; НоваяЗадача.Наименование = "Согласование со специалистом"; НоваяЗадача.ТочкаМаршрута = БизнесПроцессы.НаПараллельноеСогласование.ТочкиМаршрута.Согласование; НоваяЗадача.Дата = ТекущаяДата(); НоваяЗадача.Записать(); ФормируемыеЗадачи.Добавить(НоваяЗадача); КонецЦикла; СтандартнаяОбработка = Ложь; |
Сообщ.
#13
,
|
|
|
Прочие прикладные объекты
Как, не открывая форму внешней обработки, выполнить ее процедуру для определенного объекта? ![]() ![]() Обработка = ВнешниеОбработки.Создать(ИмяФайла); Обработка.Печать(Ссылка); |
Сообщ.
#14
,
|
|
|
Как быстро получить информацию, по всем объектам, находящимся в компетенции конкретного менеджера (элемент справочника "Пользователи") по продажам?
1. ![]() ![]() МассивСсылок = КритерииОтбора.КомпетенцияМенеджераПродаж.Найти(Менеджер); Для Каждого Ссылка из МассивСсылок Цикл Сообщить(Ссылка); КонецЦикла; 2. ![]() ![]() ВЫБРАТЬ КомпетенцияМенеджераПродаж.Ссылка ИЗ КритерийОтбора.КомпетенцияМенеджераПродаж(&Менеджер) КАК КомпетенцияМенеджераПродаж |
Сообщ.
#15
,
|
|
|
Формы и элементы управления
Работа с формами Как открыть форму документа? ![]() ![]() ФормаДокумента = СсылкаНаДокумент.ПолучитьФорму(); ФормаДокумента.Открыть(); |
Сообщ.
#16
,
|
|
|
Как открыть форму внешней обработки?
![]() ![]() Обработка = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); Обработка.Открыть(); //либо так: Обработка = ВнешниеОбработки.ПолучитьФорму("C:\Внешние\СпецОтчет.epf", ИмяФормы, , Ключ); Обработка.Открыть(); |
Сообщ.
#17
,
|
|
|
Как отрыть форму отчета так, чтобы она не перекрывала собой ту форму, из которой она открыта?
![]() ![]() Форма = Отчеты.ОтчетДиаграмма.ПолучитьФорму("ФормаОсновная", ЭтаФорма); Форма.ПоложениеОкна = ВариантПоложенияОкна.НеПерекрыватьВладельца; Форма.Открыть(); |
Сообщ.
#18
,
|
|
|
Как открыть форму отчета на весь экран?
![]() ![]() СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Максимизированное; ИзмененятьСпособОтображенияОкна = ИзменениеСпособаОтображенияОкна.Запретить; Как из формы документа открыть форму списка данного документа, спозиционировавшись на нем же? ФормаСписка = Документы[Метаданные().Имя].ПолучитьФормуСписка(); ФормаСписка.ПараметрТекущаяСтрока = Ссылка; ФормаСписка.Открыть(); ФормаСписка = Документы[Метаданные().Имя].ПолучитьФормуСписка( , , Новый УникальныйИдентификатор()); |
Сообщ.
#19
,
|
|
|
В документе есть реквизит "Контрагент". Как открыть форму подчиненного ему справочника "ДоговорыКонтрагентов"?
![]() ![]() Если Не Контрагент.Пустая() Тогда ФормаПодчиненныхДоговоров = Справочники.ДоговорыКонтрагентов.ПолучитьФормуСписка(); ФормаПодчиненныхДоговоров.ПараметрОтборПоВладельцу = Контрагент; ФормаПодчиненныхДоговоров.Открыть(); КонецЕсли; |
Сообщ.
#20
,
|
|
|
Как в форме отобразить картинку, сохраненную в реквизите справочника?
![]() ![]() // Значение, сохраненное в реквизите справочника, имеющем тип // ХранилищеЗначения, можно только получить. СохраненнаяКартинка = Фотография.Получить(); Если СохраненнаяКартинка <> Неопределено Тогда // Если в хранилище было что-нибудь заранее записано… ЭлементыФормы.Фото.Картинка = СохраненнаяКартинка; КонецЕсли; |
Сообщ.
#21
,
|
|
|
Как в журнале документов "УчетКадров" отобрать только документы "ПриемНаРаботу"?
![]() ![]() ЖурналДокументовСписок.Отбор.ВидДокумента.Установить(Метаданные.Документы.ПриемНаРаботу); |
Сообщ.
#22
,
|
|
|
Как узнать интервал дат в открытом текущем журнале?
![]() ![]() Если ЖурналДокументовСписок.Отбор.Дата.Использование Тогда Сообщить(ЖурналДокументовСписок.Отбор.Дата); Иначе Сообщить("Без ограничения по датам"); КонецЕсли; |
Сообщ.
#23
,
|
|
|
Как при открытии справочника сделать отбор по контрагентам, входящим в список?
![]() ![]() Процедура ПриОткрытии() СправочникСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; СправочникСписок.Отбор.Ссылка.Значение = СписокКонтрагентов; СправочникСписок.Отбор.Ссылка.Использование = Истина; КонецПроцедуры |
Сообщ.
#24
,
|
|
|
Как обеспечить, чтобы для выбора значения покупателя в расходной накладной справочник контрагенты открывался сразу с открытой группой "Покупатели"?
![]() ![]() Процедура КонтрагентНачалоВыбора(Элемент, СтандартнаяОбработка) Если Элемент.Значение.Пустая() Тогда СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.Контрагенты.ПолучитьФормуВыбора( , Элемент); ФормаВыбора.ВыборПокупателя = Истина; ФормаВыбора.Открыть(); КонецЕсли; КонецПроцедуры Если ВыборПокупателя Тогда ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Истина; ЭлементыФормы.СправочникСписок.ТекущийРодитель = Константы.ГруппаПокупатели.Получить(); КонецЕсли; Если ВыборПокупателя Тогда ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Истина; ЭлементыФормы.СправочникСписок.ТекущийРодитель = Справочники.Контрагенты.Покупатели; КонецЕсли; |
Сообщ.
#25
,
|
|
|
Табличное поле
Как запретить пользователю изменять порядок следования колонок в табличном поле? ![]() ![]() ЭлементыФормы.ТабличноеПоле.ИзменятьПозициюКолонок = Ложь; ЭлементыФормы.ТабличноеПоле.Колонки.Картинка.ИзменятьПозицию = Ложь; ЭлементыФормы.ТабличноеПоле.Колонки.Код.ИзменятьПозицию = Ложь; ЭлементыФормы.ТабличноеПоле.Колонки.Наименование.ИзменятьПозицию = Ложь; |
Сообщ.
#26
,
|
|
|
Как запретить пользователю изменять любые настройки колонок табличного поля?
![]() ![]() ЭлементыФормы.ТабличноеПоле.ИзменятьНастройкуКолонок = Ложь; ЭлементыФормы.ТабличноеПоле.Колонки.Картинка.ИзменятьНастройку = Ложь; ЭлементыФормы.ТабличноеПоле.Колонки.Код.ИзменятьНастройку = Ложь; ЭлементыФормы.ТабличноеПоле.Колонки.Наименование.ИзменятьНастройку = Ложь; |
Сообщ.
#27
,
|
|
|
Как вывести информацию о том, какой отбор установлен в журнале документов?
![]() ![]() ЭлементыФормы.НадписьОтбор.Заголовок = СписокДокументов.Отбор; УстановленныйОтбор = СписокДокументов.Отбор; Сообщить("Элементы отбора:"); Для Каждого ЭлементОтбора из УстановленныйОтбор Цикл Сообщить(Строка(ЭлементОтбора) + " использование = " + ЭлементОтбора.Использование); КонецЦикла; |
Сообщ.
#28
,
|
|
|
Как в форме справочника установить курсор на элемент с известным наименованием?
![]() ![]() ЭлементыФормы.СправочникСписок.ТекущаяСтрока = Справочники.Контрагенты.НайтиПоНаименованию("ПОСТАВЩИКИ", Истина); |
Сообщ.
#29
,
|
|
|
Как в форме списка сделать отбор по значению реквизита?
![]() ![]() СправочникСписок.Отбор.СтавкаНДС.Установить(Перечисления.СтавкиНДС.НДС18); СправочникСписок.Отбор.СтавкаНДС.Значение = Перечисления.СтавкиНДС.НДС18; СправочникСписок.Отбор.СтавкаНДС.ВидСравнения = ВидСравнения.Равно; СправочникСписок.Отбор.СтавкаНДС.Использование = Истина; |
Сообщ.
#30
,
|
|
|
Как запретить выдачу сообщения: "Введенные данные не отображены в списке, так как не соответствуют отбору" при добавлении новых элементов в справочник?
![]() ![]() ЭлементыФормы.ПолеСписка.ПроверкаОтображенияНовойСтроки = ВариантПроверкиОтображенияНовойСтроки.НеПроверять; |
Сообщ.
#31
,
|
|
|
Как заполнить ячейку табличного поля данными?
![]() ![]() Процедура ТабличноеПолеЗаказовЗаказПриИзменении(Элемент) // Получить текущую строку табличного поля. СтрокаТаблицы = ЭлементыФормы.ТабличноеПолеЗаказов.ТекущаяСтрока; // Ввести значения в ячейки строки. СтрокаТаблицы.Контрагент = СтрокаТаблицы.Заказ.Контрагент; СтрокаТаблицы.ДатаОтгрузки = СтрокаТаблицы.Заказ.ДатаОтгрузки; КонецПроцедуры |
Сообщ.
#32
,
|
|
|
Как изменить цвет фона ячейки табличного поля в зависимости от значения, выводимого в нее?
![]() ![]() Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок) Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл ЗначениеЯчейкиОстаток = ОформлениеСтроки.Ячейки.Остаток.Значение; Если ЗначениеЯчейкиОстаток <> Неопределено Тогда Если ЗначениеЯчейкиОстаток < 10 Тогда ОформлениеСтроки.Ячейки.Остаток.ЦветФона = WebЦвета.Красный; ИначеЕсли ЗначениеЯчейкиОстаток > 100 Тогда ОформлениеСтроки.Ячейки.Остаток.ЦветФона = WebЦвета.Желтый; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры |
Сообщ.
#33
,
|
|
|
Как в табличное поле "ВыбранныеКонтрагенты" добавить новую колонку "ОсновнойДоговор", заполнить ее значения и дать возможность открытия этих значений?
![]() ![]() Если ТаблицаКонтрагентов.Колонки.Найти("ОсновнойДоговор") = Неопределено Тогда МассивТипов = Новый Массив(); МассивТипов.Добавить(Тип("СправочникСсылка.ДоговорыКонтрагентов")); ОписаниеНужныхТипов = Новый ОписаниеТипов(МассивТипов); ТаблицаКонтрагентов.Колонки.Добавить("ОсновнойДоговор", ОписаниеНужныхТипов); КонецЕсли; Для Каждого СтрокаТаблицы из ТаблицаКонтрагентов Цикл СтрокаТаблицы["ОсновнойДоговор"] = СтрокаТаблицы["Контрагент"]["ОсновнойДоговорКонтрагента"]; КонецЦикла; ЭлементыФормы.ВыбранныеКонтрагенты.СоздатьКолонки(); ЭлементыФормы.ВыбранныеКонтрагенты.Колонки.ОсновнойДоговор.ЭлементУправления.КнопкаОткрытия = Истина; |
Сообщ.
#34
,
|
|
|
Как задать список выбора для колонки "ВидДокумента" табличного поля?
![]() ![]() Процедура ПриОткрытии() СписокВидовДокументов = Новый СписокЗначений; Для Каждого ДокументКонфигурации из Метаданные.Документы Цикл СписокВидовДокументов.Добавить(ДокументКонфигурации.Имя); КонецЦикла; ЭлементыФормы.ПодборДанных.Колонки.ВидДокумента.ЭлементУправления.СписокВыбора = СписокВидовДокументов; КонецПроцедуры ЭлементыФормы.ПодборДанных.Колонки.ВидДокумента.ЭлементУправления.КнопкаСпискаВыбора = Истина; |
Сообщ.
#35
,
|
|
|
Как обеспечить возможность отбора и сортировки данных по реквизитам, не отображаемым в табличном поле формы списка справочника?
![]() ![]() ЭлементыФормы.СправочникСписок.НастройкаОтбора.ОсновнойПоставщик.Доступность = Истина; ЭлементыФормы.СправочникСписок.НастройкаПорядка.ОсновнойПоставщик.Доступность = Истина; |
Сообщ.
#36
,
|
|
|
Как реализовать перетаскивание между элементами управления?
![]() ![]() Процедура НоменклатураНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) // Получить значение, переданное системой. Значение = ПараметрыПеретаскивания.Значение; // В любом случае значением будет массив. МассивЗначений = Новый Массив; // Если перетаскивается группа, то в массив записываем входящие в нее элементы. Если Значение.ЭтоГруппа Тогда Выборка = Справочники.Номенклатура.Выбрать(Значение); Пока Выборка.Следующий() Цикл Если Не Выборка.ЭтоГруппа Тогда МассивЗначений.Добавить(Выборка.Ссылка); КонецЕсли; КонецЦикла; Иначе МассивЗначений.Добавить(Значение); КонецЕсли; // Заполненный массив записываем в параметры. ПараметрыПеретаскивания.Значение = МассивЗначений; КонецПроцедуры Процедура ТоварыПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка) СтандартнаяОбработка = Ложь; КонецПроцедуры Процедура ТоварыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка) ПолученныйМассив = ПараметрыПеретаскивания.Значение; Если ТипЗнч(ПолученныйМассив) = Тип("Массив") Тогда Для Каждого Значение Из ПолученныйМассив Цикл НоваяСтрока = ДокументОбъект.Товары.Добавить(); НоваяСтрока.Номенклатура = Значение; НоваяСтрока.Количество = 1; КонецЦикла; КонецЕсли; КонецПроцедуры |
Сообщ.
#37
,
|
|
|
Как вывести остатки на складах в списке номенклатуры?
![]() ![]() Процедура СписокНоменклатураПриПолученииДанных(Элемент, ОформленияСтрок) Запрос = Новый Запрос("ВЫБРАТЬ | ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток, | ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Товар |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( , Номенклатура В (&МассивТоваров)) КАК ТоварыНаСкладахОстатки"); МассивНоменклатуры = Новый Массив; // для передачи в параметр запроса Соответствие = Новый Соответствие; // для заполнения остатков в строках табличного поля Для Каждого Строка из ОформленияСтрок Цикл МассивНоменклатуры.Добавить(Строка.ДанныеСтроки.Ссылка); Соответствие.Вставить(Строка.ДанныеСтроки.Ссылка, Строка); КонецЦикла; Запрос.УстановитьПараметр("МассивТоваров", МассивНоменклатуры); Выборка = Запрос.Выполнить().Выбрать(); // Вывести остаток в строку, найденную в соответствии по номенклатуре // из запроса. Пока Выборка.Следующий() Цикл Соответствие.Получить(Выборка.Товар.Ссылка).Ячейки.Остаток.Значение = Выборка.Остаток; КонецЦикла; КонецПроцедуры |
Сообщ.
#38
,
|
|
|
Другие элементы управления
В форме есть панель со страницами. Как разместить картинку на закладке? ![]() ![]() ЭлементыФормы.ОсновнаяПанель.Страницы.СчетаУчета.КартинкаЗаголовка = БиблиотекаКартинок.ДебетКредит; |
Сообщ.
#39
,
|
|
|
Как обеспечить, чтобы при открытии формы уже записанного элемента справочника "Контрагенты" активной была закладка "СчетаИДоговоры" панели "Панель"?
![]() ![]() Процедура ПриОткрытии() Если ЭтоНовый() = Ложь Тогда ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.Страницы.СчетаИДоговоры; КонецЕсли; КонецПроцедуры |
Сообщ.
#40
,
|
|
|
Как организовать выбор из нескольких списков документов для открытия?
![]() ![]() Док = Метаданные.Документы; СписокДокументов = Новый СписокЗначений(); СписокДокументов.Добавить(Док.ПлатежноеПоручениеИсходящее, , Ложь); СписокДокументов.Добавить(Док.ПлатежноеПоручениеВходящее, , Ложь); СписокДокументов.Добавить(Док.АккредитивПереданный, , Ложь); СписокДокументов.Добавить(Док.АккредитивПолученный, , Ложь); СписокДокументов.Добавить(Док.ПлатежноеТребованиеВыставленное, , Ложь); СписокДокументов.Добавить(Док.ПлатежноеТребованиеПолученное, , Ложь); СписокДокументов.Добавить(Док.ИнкассовоеПоручениеПереданное, , Ложь); СписокДокументов.Добавить(Док.ИнкассовоеПоручениеПолученное, , Ложь); СписокДокументов.Добавить(Док.ПлатежныйОрдерСписаниеДенежныхСредств, , Ложь); СписокДокументов.Добавить(Док.ПлатежныйОрдерПоступлениеДенежныхСредств, , Ложь); Если СписокДокументов.ОтметитьЭлементы("Укажите, какие списки документов открыть") Тогда Для Каждого НазваниеДокумента из СписокДокументов Цикл Если НазваниеДокумента.Пометка Тогда ФормаСписка = Документы[НазваниеДокумента.Значение.Имя].ПолучитьФормуСписка(); ФормаСписка.Открыть(); КонецЕсли; КонецЦикла; КонецЕсли; |
Сообщ.
#41
,
|
|
|
Как можно организовать подстановку обращения к персоне?
![]() ![]() Процедура ПерсонаОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) Значение = Новый СписокЗначений(); Значение.Добавить("Уважаемый " + Текст); Значение.Добавить("Уважаемая " + Текст); Значение.Добавить("Уважаемое " + Текст); Значение.Добавить("Уважаемые " + Текст); Значение.Добавить(Текст); СтандартнаяОбработка = Ложь; КонецПроцедуры |
Сообщ.
#42
,
|
|
|
Как в командной панели создать подменю с кнопками?
![]() ![]() КнопкиКоманднойПанели = ЭлементыФормы.КоманднаяПанельФормы.Кнопки; // Проверить, нет ли уже на командной панели кнопки "Сформировать". // Если есть - удалить. Индекс = КнопкиКоманднойПанели.Индекс(КнопкиКоманднойПанели.Найти("Сформировать")); Если Индекс = -1 Тогда Индекс = 0; Иначе КнопкиКоманднойПанели.Удалить(Индекс); КонецЕсли; // Создать подменю "Сформировать". ПодменюСформировать = КнопкиКоманднойПанели.Вставить(Индекс, "Сформировать", ТипКнопкиКоманднойПанели.Подменю, "Сформировать"); // Добавить картинку. ПодменюСформировать.Картинка = БиблиотекаКартинок.Сформировать; ПодменюСформировать.Отображение = ОтображениеКнопкиКоманднойПанели.НадписьКартинка; // Опросить перечисление о возможных вариантах периодичности. Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Перечисление.Периодичность"); Выборка = Запрос.Выполнить().Выбрать(); //Добавить кнопки к подменю. Пока Выборка.Следующий() Цикл Период = Выборка.Ссылка; ПодменюСформировать.Кнопки.Добавить("кн" + Период, ТипКнопкиКоманднойПанели.Действие, "Сформировать за " + Период, Новый Действие("КнопкаСформироватьНажатие")); КонецЦикла; Процедура КнопкаСформироватьНажатие(Элемент) НазваниеПериодичности = СтрЗаменить(Элемент.Имя, "кн", ""); КонецПроцедуры |
Сообщ.
#43
,
|
|
|
Как созданной кнопке назначить "горячие клавиши"?
![]() ![]() СозданнаяКнопка.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.L, Истина, Истина,); |
Сообщ.
#44
,
|
|
|
Как реализовать заполнение возможных значений поля выбора "ОбрабатываемаяТабличнаяЧасть" при заполнении поля ввода "ОбрабатываемыйДокумент"?
![]() ![]() Процедура ОбрабатываемыйДокументПриИзменении(Элемент) СписокВыбора = ЭлементыФормы.ОбрабатываемаяТабличнаяЧасть.СписокВыбора; СписокВыбора.Очистить(); Если Элемент.Значение <> Неопределено И Не(Элемент.Значение.Пустая()) Тогда ТабличныеЧасти = Элемент.Значение.Метаданные().ТабличныеЧасти; Для Каждого ТабличнаяЧасть из ТабличныеЧасти Цикл СписокВыбора.Добавить(ТабличнаяЧасть); КонецЦикла; КонецЕсли; КонецПроцедуры Процедура ОбрабатываемыйДокументОчистка(Элемент, СтандартнаяОбработка) ОбрабатываемаяТабличнаяЧасть = ""; КонецПроцедуры |
Сообщ.
#45
,
|
|
|
Если пользователь указал несколько дат в поле календаря - как их перебрать?
![]() ![]() КоллекцияДат = ЭлементыФормы.ПолеКалендаря.ВыделенныеДаты; Для каждого ДатаКалендаря из КоллекцияДат Цикл Сообщить(ДатаКалендаря); КонецЦикла; ЭлементыФормы.ПолеКалендаря.РежимВыделения = РежимВыделенияДаты.Множественный; |
Сообщ.
#46
,
|
|
|
Как организовать работу с индикатором?
![]() ![]() Выборка = РезультатЗапроса.Выбрать(); Индикатор = ЭлементыФормы.ИндикаторПеребора; Индикатор.МаксимальноеЗначение = Выборка.Количество(); Индикатор.Значение = 0; Пока Выборка.Следующий() Цикл Индикатор.Значение = Индикатор.Значение + 1; КонецЦикла; Выборка = РезультатЗапроса.Выбрать(); Индикатор = ЭлементыФормы.ИндикаторПеребора; Индикатор.МаксимальноеЗначение = Выборка.Количество(); Индикатор.Значение = 0; Индикатор.ОтображатьПроценты = Истина; Индикатор.СтильОтображения = РежимСглаживанияИндикатора.Прерывистый; Индикатор.Ориентация = Ориентация.Вертикально; Индикатор.Шаг = 0.1; Пока Выборка.Следующий() Цикл Индикатор.Значение = Индикатор.Значение + 1; КонецЦикла; |
Сообщ.
#47
,
|
|
|
Как у элемента управления сменить источник данных?
![]() ![]() Процедура КнопкаВыполнитьНажатие(Элемент) ЭлементыФормы.ТП.Данные = "СписокКонтрагентов"; ЭлементыФормы.ТП.СоздатьКолонки(); КонецПроцедуры Процедура Номенклатура(Кнопка) ЭлементыФормы.ТП.Данные = "СписокНоменклатуры"; ЭлементыФормы.ТП.СоздатьКолонки(); КонецПроцедуры |
Сообщ.
#48
,
|
|
|
Как задать представление даты, отображаемое в поле ввода по-умолчанию?
ЭлементыФормы.ПолеВвода1.Формат = "ДП='01.01.0001'"; ЭлементыФормы.ПолеВвода1.Формат = "ДП='00:00:00'"; ЭлементыФормы.ПолеВвода1.Формат = "ДП='01.01.0001 00:00:00'"; |
Сообщ.
#49
,
|
|
|
Как вывести текст в поле картинки в том случае, если картинка не выбрана?
![]() ![]() ЭлементыФормы.ОсновноеИзображение.ТекстНевыбраннойКартинки = "фотография номенклатуры отсутствует"; |
Сообщ.
#50
,
|
|
|
Как открыть пользователю стандартный диалог выбора цвета?
![]() ![]() Диалог = Новый ДиалогВыбораЦвета; Если Диалог.Выбрать() Тогда ВыбранныйЦвет = Диалог.Цвет; КонецЕсли; Диалог = Новый ДиалогВыбораШрифта; Если Диалог.Выбрать() Тогда ВыбранныйШрифт = Диалог.Шрифт; КонецЕсли; |
Сообщ.
#51
,
|
|
|
Как заполнить список в форме данными запроса?
![]() ![]() Запрос = Новый Запрос(" |ВЫБРАТЬ | Номенклатура.Ссылка КАК Значение, | Номенклатура.Представление КАК Представление, | ИСТИНА КАК Пометка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ОсновнойПоставщик = &ОсновнойПоставщик"); Запрос.УстановитьПараметр("ОсновнойПоставщик", ПолеПоставщик); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ЗаполнитьЗначенияСвойств(ПолеСписка.Добавить(), Выборка); КонецЦикла; |
Сообщ.
#52
,
|
|
|
Как отобразить в форме файл графической схемы?
![]() ![]() Схема = Новый ГрафическаяСхема(); Схема.Прочитать("D:/MyScheme.grs"); ЭлементыФормы.СтруктурнаяСхема.УстановитьСхему(Схема); |