Инструменты: v81_82_83: об./упр. формы. Отключение пользователей: файловый, кл-сервер. Запуск/Вход под другим польз-м. Поиск ссылок на объект СКД. Консоль запр. Отладка ВПФ и ОЗТЧ. Гр.печать, Перепровед-е немоноп-е и др.(Один архив)

11.06.20

Задачи пользователя - Поиск данных

Набор внешних обработок необходимый перед обновлением базы и проверки внесенных изменений после, которые сделал и пользуюсь уже несколько лет и периодически одной из них, да и не окажется под рукой.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Отключение пользователей - обычные формы - файловая 8.2
.epf 16,83Kb ver:1.0
10 2 500 руб. Купить
ЗапускПодПользователем - обычные формы
.epf 9,30Kb ver:1.0
3 2 500 руб. Купить
ЗапускПодПользователем - Управляемые формы
.epf 17,16Kb ver:1.0
5 2 500 руб. Купить
Отключение пользователей ( Обычные формы - Клиент_Сервер )
.epf 22,95Kb ver:1.0
7 2 500 руб. Купить
Отключение пользователей ( Управляемые - Клиент_Сервер )
.epf 23,00Kb ver:1.0
10 2 500 руб. Купить
ОтключениеПользователей (Управляемые - файловая)
.epf 21,82Kb ver:1.0
19 2 500 руб. Купить
ПоискСсылокНаОбъектСКД - Обычные формы
.erf 11,07Kb ver:2.0
1 2 500 руб. Купить
ПоискСсылокНаОбъектСКД - Управляемые формы
.erf 15,44Kb ver:1.0
8 2 500 руб. Купить
Архив обработок ВСЕ в ОДНОМ - v2.1
.rar 600,71Kb ver:2.1
41 3 800 руб. Купить
Отключение пользователей - 8.3 - файловая обычные формы
.epf 16,83Kb
4 2 500 руб. Купить
ГрупповаяПечатьПФ_Документов_82
.epf 13,78Kb
0 2 500 руб. Купить
Консоль запросов - с произвольным алгоритмом (82)
.epf 136,43Kb
0 2 500 руб. Купить
КонсольЗапросов_УФ_83
.epf 230,34Kb
0 2 500 руб. Купить
ОтладкаВнешнейПечатнойФормы.82
.epf 13,93Kb
2 2 500 руб. Купить
ОтладкаОбработокЗТЧ_8
.epf 21,18Kb
1 2 500 руб. Купить
Перепроведение документов по контрагенту 82
.epf 19,01Kb
0 2 500 руб. Купить
ПоискИЗаменаЗначений_с_перепроведением_82
.epf 22,38Kb
0 2 500 руб. Купить
ПроведениеДокументов_НеМонопольное_82
.epf 22,34Kb
1 2 500 руб. Купить
Сравнение модулей обарботок - final (82)
.epf 8,47Kb
0 2 500 руб. Купить
УниверсальныйРеестрДокументов_ПечатьРеквизитов_спроизв_алгоритмом_82
.epf 78,09Kb
1 2 500 руб. Купить
ОбновитьИдентификаторыОбъектовМетаданных (УФ, 83)
.epf 6,66Kb
0 2 500 руб. Купить
Инструкция по блокировке сеансов пользов. обычные и упр. формы
.docx 259,05Kb
4 2 500 руб. Купить
Отключение пользователей _81 (клиент-сервер)
.epf 86,89Kb
0 2 500 руб. Купить
Удобная читалка XML в 1С 8.2 (обычные формы)
.epf 64,88Kb
0 2 500 руб. Купить
Шаблон отчета СКД - управляемые формы
.erf 27,79Kb
1 3 000 руб. Купить
Шаблон отчета СКД - обычные формы
.erf 63,39Kb
1 2 500 руб. Купить
Удаление записей независимых регистров сведений
.epf 13,71Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

1.Отключение пользователей:

 Файловый режим (обычные/управляемые формы):

- внешняя обработка блокирующая и завершающая сеансы пользователей, без доработки конфигурации (8.2/8.3).

2. Вход под пользователем  (обычные/управляемые формы)

3.Поиск ссылок на объект СКД  (обычные/управляемые формы)

4. Также добовалено 10 инструментов для обычных и управляемых форм.

5. Добавил инструкцию по блокировке сеансов пользователей обычные и упр.формы.

6. Шаблоны отчетов СКД (с отборами и кнопками) обычные и управляемы формы

P.s. пишите пожелания, возможна доработка одной из ваших форм или запуск обработки на вашей конфигурации (после создания БэкАпа)

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    83935    433    171    

364

Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    28897    104    46    

107

Инструменты администратора БД Роли и права Системный администратор Разработчик Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!

23180 руб.

06.12.2023    25172    85    14    

118

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5. Работает на возможностях платформы, внешние компоненты не используются.

6000 руб.

25.02.2026    6752    23    1    

25

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    4267    12    0    

25

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    53058    146    164    

98
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Bitnikov 401 27.09.16 23:38 Сейчас в теме
Понадобилось отключить зависшее соединение в обычных формах на 8.3. Скачал - Отключение пользователей - обычные формы - файловая. Сходу на 8.3 не заработала, допилил сам. Ставлю + в надежде, что доработаете и обновите обработку.
2. Светлый ум 509 28.09.16 05:51 Сейчас в теме
(1) Bitnikov, протестирую на 8.3 - использую 8.2, поэтому возможно чего-то не учел
3. Светлый ум 509 11.10.16 17:07 Сейчас в теме
(1) Bitnikov, сбацал - качаем для 8.3 отдельно прикрепляю - архив позже обновлю.
19. Светлый ум 509 27.06.19 18:32 Сейчас в теме
Загрузка из Иерархического Экселя:
Процедура ПрочитатьИзФайла(Дерево) Экспорт
	
	ВыбФайл = Новый Файл(Путь);
	Если НЕ ВыбФайл.Существует() Тогда
		Сообщить("Файл не существует!");
		Возврат;
	КонецЕсли;
	
	Попытка
		Excel = Новый COMОбъект("Excel.Application");
		Excel.WorkBooks.Open(Путь);
		ExcelЛист = Excel.Sheets(1);
	Исключение
		Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
		Возврат;
	КонецПопытки;
	ТекСтр = 1;
	
	НачальнаяГруппировка = Дерево.Строки.Добавить();
	НачальнаяГруппировка.Наименование = "Корень";
	НачальнаяГруппировка.Глубина = 0;
	xlCellTypeLastCell = 11;
	ExcelПоследняяСтрока = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Row;
	ДобавитьВеткуВДерево(ExcelЛист, НачальнаяГруппировка, 0, 1);
	
	Excel.WorkBooks.Close();
	Excel = 0;
	
КонецПроцедуры    

Процедура ДобавитьВеткуВДерево(ExcelЛист, ТекущаяВетвь, ПредыдущийУровень, ТекСтр)
	
	Пока Истина Цикл 
		
		НаименованиеТовара = СокрЛп(ExcelЛист.Cells(ТекСтр, 1).Value);
		Если НаименованиеТовара = "" Тогда 
			Прервать;
		КонецЕсли;

		ТекущийУровень = ExcelЛист.Rows(ТекСтр).OutlineLevel;
		Если ПредыдущийУровень < ТекущийУровень Тогда
			// Прочитали дочерний узел
			НоваяВетвь = ТекущаяВетвь.Строки.Добавить();
		ИначеЕсли ПредыдущийУровень > ТекущийУровень Тогда
			Возврат;
		Иначе
			Если ТекущаяВетвь.Глубина = ТекущийУровень Тогда 
				// Закончили группировку, которая евляется концом вышестоящей
				НоваяВетвь = ТекущаяВетвь.Родитель.Строки.Добавить();
			Иначе 
				// Перебираем элементы текущей группировки
				НоваяВетвь = ТекущаяВетвь.Строки.Добавить();
			КонецЕсли;
		КонецЕсли;
		
		НоваяВетвь.Наименование = НаименованиеТовара;
		НоваяВетвь.Глубина = ТекущийУровень;
			
		СледующийУровень = ExcelЛист.Rows(ТекСтр + 1).OutlineLevel;
		Если СледующийУровень < ТекущийУровень Тогда 
			ТекСтр = ТекСтр + 1;
			Возврат;
		Иначе
			ТекСтр = ТекСтр + 1;
			Если СледующийУровень > ТекущийУровень Тогда 
				ДобавитьВеткуВДерево(ExcelЛист, НоваяВетвь, ТекущийУровень, ТекСтр)
			КонецЕсли;
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
МодульОбъекта_ЗагрExcel.txt
МодульФормы_ЗагрExcel.txt
тест.xls
4. Светлый ум 509 29.10.16 15:23 Сейчас в теме
V 2.1:
- архив обновлен 29.10.2016
- 1 инструмент доработан, 10 добавлено
(версия платформы указываю для каждого файла)
Team leader; +1 – Ответить
5. Team leader 12 20.07.17 09:50 Сейчас в теме
Для принудительного запуска предприятия в Обычном или Управляемом приложении используются следующие ключи:

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

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

При указании любого из этих двух ключей отключается механизм автоматического выбора клиентского приложения кроме случаев, когда пользователь в командной строке явно указал ключ /AppAutoCheckMode (с 8.2.15)

Параметр можно указать в настройках запуска базы:


Примеры создания ярлыков:

"C:\Program Files (x86)\1cv82\8.2.13.219\bin\1cv8.exe" /RunModeOrdinaryApplication

или

\\server1c\Client_8_3\1cv8s.exe ENTERPRISE /S"server1c\buh_3_0" /DisableStartupMessages /RunModeOrdinaryApplication
6. Team leader 12 20.07.17 10:46 Сейчас в теме
Сервис - Параметры - Запуск 1С:Предприятия - Основные - Толстый клиент (обычное приложение)
7. Светлый ум 509 20.04.18 11:35 Сейчас в теме
еще, 5 копеек. (себе напоминание)
- в дополнительные параметры запуска вставляем:

/C ЗапуститьОбновлениеИнформационнойБазы
71. Светлый ум 509 22.11.19 06:51 Сейчас в теме
Литература по программированию 1С
https://forum.infostart.ru/forum6/topic230143/

(7) 21 день программиста от Гилева посмотрим, затем курс по запросам на юутубе от Кузнецова, а затем 110 уроков Гилева по СКД.
Дальше можно почитать книгу разработчика. Ну для систематизации хватит.

http://v8.1c.ru/metod/books/
Вот тут можно выбрать
Если есть ИТС, можно читать прямо с сайта некоторые книги
8. Светлый ум 509 22.05.19 20:53 Сейчас в теме
тестовая обработка
Прикрепленные файлы:
файлы.rar
9. Светлый ум 509 02.06.19 12:45 Сейчас в теме
62. Светлый ум 509 22.10.19 10:26 Сейчас в теме
11. Светлый ум 509 04.06.19 09:41 Сейчас в теме
Обрезание функционала для увеличения скорости обработки больших объемов данных:

https://infostart.ru/public/387232/
12. Светлый ум 509 04.06.19 11:30 Сейчас в теме
Работа с XML:

1) Разбор XML документа - почти все возможные способы

https://infostart.ru/public/311011/

2) XDTO на службе у лентяев. Самый простой способ чтения xml
https://infostart.ru/public/414940/
13. Светлый ум 509 07.06.19 11:55 Сейчас в теме
14. Светлый ум 509 11.06.19 13:29 Сейчас в теме
Работа с динамическим списком
//снять галку: автоматическое сохранение пользовательских настроек

Процедура СортироватьПоКодуБыстрогоВыбора_Вниз()
	
	ЭлементыПользовательскихНастроек = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
	Для Каждого Элемент Из ЭлементыПользовательскихНастроек Цикл
		Если ТипЗнч(Элемент) = ТипЗнч(Список.КомпоновщикНастроек.Настройки.Порядок) Тогда
			Элемент.Элементы.Очистить();
			УсловиеСортировки = Элемент.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
			УсловиеСортировки.Поле = Новый ПолеКомпоновкиДанных("КодБыстрогоВыбора");
			УсловиеСортировки.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
			УсловиеСортировки.Использование = Истина;
		КонецЕсли;    
	КонецЦикла;
	
КонецПроцедуры


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ЭлементыПользовательскихНастроек = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
	Для Каждого Элемент Из ЭлементыПользовательскихНастроек Цикл
		Если ТипЗнч(Элемент) = ТипЗнч(Список.КомпоновщикНастроек.Настройки.УсловноеОформление) Тогда
			//Элемент.Элементы.Очистить();	
			НовыйЭлементУсловногоОформления = Элемент.Элементы.Добавить(); //Тип("ЭлементУсловногоОформленияКомпоновкиДанных") 
			НовыйЭлементУсловногоОформления.Использование = Истина;
			ПолеЭлемента               = НовыйЭлементУсловногоОформления.Поля.Элементы.Добавить();
			ПолеЭлемента.Поле          = Новый ПолеКомпоновкиДанных("Наименование");
			ПолеЭлемента.Использование = Истина;
			//Отбор    
			ЭлементОтбора = НовыйЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); //
			ЭлементОтбора.Использование  = Истина; 
			ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Наименование");
			ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Меньше; 
			ЭлементОтбора.ПравоеЗначение = "тест_5";
			НовыйЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Синий);
		КонецЕсли;    
	КонецЦикла;

	
КонецПроцедуры
Показать
15. Светлый ум 509 13.06.19 09:53 Сейчас в теме
Задание выражения для ЗагрузкиИзТабличногоДокумента, программного:

Для каждого ЗагружаемыйРеквизит Из ТаблицаЗагружаемыхРеквизитов Цикл
		ЗагружаемыйРеквизит.Пометка = Ложь;		
	      Если ЗагружаемыйРеквизит.ИмяРеквизита = "Код" Тогда 
			ЗагружаемыйРеквизит.Пометка    = Истина;
			ЗагружаемыйРеквизит.ПолеПоиска = Истина;
			
			ЗагружаемыйРеквизит.РежимЗагрузки = "Вычислять";	 
			ТекстВыражения                    = 
                        "Если Прав(ТекстЯчейки, 1) <> ""."" Тогда Результат = ТекстЯчейки + "".""; Иначе Результат =    ТекстЯчейки; КонецЕсли";

			ЗагружаемыйРеквизит.ПредставлениеДопУсловий = ТекстВыражения;  
			ЗагружаемыйРеквизит.Выражение               = ТекстВыражения;
		КонецЕсли;	

		Если ЗагружаемыйРеквизит.ИмяРеквизита = "Наименование" Тогда 
			ЗагружаемыйРеквизит.НомерКолонки  = 2;
			ЗагружаемыйРеквизит.Пометка       = Истина;
               КонецЕсли;	
Показать
16. Светлый ум 509 20.06.19 10:33 Сейчас в теме
Лучший анализ прав (Управляемые формы)
https://infostart.ru/public/875774/
17. Светлый ум 509 24.06.19 12:05 Сейчас в теме
18. Светлый ум 509 25.06.19 21:29 Сейчас в теме
ВПФ на СКД:

Функция СведенияОВнешнейОбработке() Экспорт
	
	МассивНазначений = Новый Массив;
	МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
	
	ТаблицаКоманд = Новый ТаблицаЗначений;
	ТаблицаКоманд.Колонки.Добавить("Представление");
	ТаблицаКоманд.Колонки.Добавить("Идентификатор");
	ТаблицаКоманд.Колонки.Добавить("Использование");
	ТаблицаКоманд.Колонки.Добавить("ПоказыватьОповещение");
	ТаблицаКоманд.Колонки.Добавить("Модификатор");
	
	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = "Лист сбора";
	НоваяКоманда.Идентификатор = "ВнешняяПечатнаяФорма";
	НоваяКоманда.Использование = "ВызовСерверногоМетода";
	НоваяКоманда.ПоказыватьОповещение = Истина;
	НоваяКоманда.Модификатор = "ПечатьMXL";
	
	ПараметрыРегистрации = Новый Структура;
	ПараметрыРегистрации.Вставить("Вид", 				"ПечатнаяФорма");   
	ПараметрыРегистрации.Вставить("Назначение", 		МассивНазначений);
	ПараметрыРегистрации.Вставить("Наименование", 		"Лист сбора");
	ПараметрыРегистрации.Вставить("Версия", 			"1");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", 	Ложь);
	ПараметрыРегистрации.Вставить("Информация", 		"Расходный ордер - Лист сбора");
	ПараметрыРегистрации.Вставить("Команды", 			ТаблицаКоманд);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

Процедура Печать(ОбъектыНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	ТабличныйДокумент = СформироватьПечатнуюФормуРеестра(ОбъектыНазначения, ОбъектыНазначения);
	
	УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
		КоллекцияПечатныхФорм,
		"ВнешняяПечатнаяФорма",
		"Внешняя печатная форма",
		ТабличныйДокумент);
		
КонецПроцедуры

Функция СформироватьПечатнуюФормуРеестра(МассивОбъектовНазначения, ОбъектыПечати);
	
	ТабДокумент = Новый ТабличныйДокумент;
	
	Док = МассивОбъектовНазначения[0];
	Заголовок = Строка(Док.Метаданные().Представление()) + " №" + Док.Номер + " от " + Формат(Док.Дата, "ДФ=dd.MM.yy");
	
	Если Док.СпособДоставки = Перечисления.СпособыДоставки.Самовывоз Тогда
		Доставка = "Самовывоз" + 
					?(Не ЗначениеЗаполнено(Док.АдресДоставки), "", Символы.ПС + "Адрес доставки: " + Док.АдресДоставки);
		
	ИначеЕсли Док.СпособДоставки = Перечисления.СпособыДоставки.СиламиПеревозчика Тогда
		Доставка = "Трансп. компания: " + Док.ПеревозчикПартнер.НаименованиеПолное + 
					?(Не ЗначениеЗаполнено(Док.АдресДоставки), "", Символы.ПС + "Адрес доставки: " + Док.АдресДоставки) +
					?(Не ЗначениеЗаполнено(Док.ДополнительнаяИнформацияПоДоставке), "", Символы.ПС + Док.ДополнительнаяИнформацияПоДоставке);
					
	Иначе
		Доставка = "";
					
	КонецЕсли;
	
	Инфо = "Заказчик: " + Док.Контрагент.НаименованиеПолное + Символы.ПС +
			"Менеджер: " + Док.Партнер.ОсновнойМенеджер.Наименование + Символы.ПС +
			Доставка;
	
	СхемаКомпоновкиДанных = ПолучитьМакет("СКД");
	Настройки = СхемаКомпоновкиДанных.ВариантыНастроек.Основной.Настройки;
	
	Настройки.ПараметрыВывода.Элементы.Найти("Заголовок").Значение = Заголовок;
	Настройки.Структура[0].ПараметрыВывода.Элементы.Найти("Заголовок").Значение = Инфо;
	
	Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
    Компоновщик.ЗагрузитьНастройки(Настройки);

    Компоновщик.Настройки.ПараметрыДанных.Элементы[0].Значение = Док;

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Компоновщик.Настройки);

    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДокумент);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
	
	Возврат ТабДокумент;
	
КонецФункции
Показать
20. Светлый ум 509 02.07.19 13:43 Сейчас в теме
Формирование Источника данных CКД

ДокОбъект             = РеквизитФормыВЗначение("Объект");
			СхемаКомпоновкиДанных = ДокОбъект.ПолучитьМакет("СхемаКомпоновкиДанных");
			КоличествоДокументов  = 1;	
			ПользовательскиеНастройкиМодифицированы = Ложь;
			
			//УстановитьОбязательныеНастройки(ПользовательскиеНастройкиМодифицированы, );		
			КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
			КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); 
			//Позже заменим на настройки из реквизита документа
			КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); 
			НастройкиОтчета     = КомпоновщикНастроек.ПолучитьНастройки();
			
			//ВнешниеНаборы = НаборыДанных();	НастройкиОтчета         = КомпоновщикНастроек.ПолучитьНастройки();
			ПараметрыПолученияФакта = ПараметрыПолученияФактаПоНастройкамОтчета(НастройкиОтчета);
			
			ВнешниеНаборы = Новый Структура;	
			//Факт
			ОборотыФакт = ОборотыФакт(НастройкиОтчета, ПараметрыПолученияФакта);
			ВнешниеНаборы.Вставить("ОборотыФакт", ОборотыФакт);
			ВнешниеНаборы.Вставить("ОборотыТолькоФакт", ОборотыФакт.Скопировать(Новый Структура("Сценарий", Справочники.Сценарии.ФактическиеДанные)));
			//План
			ВнешниеНаборы.Вставить("ОборотыПлан", ОборотыПлан(НастройкиОтчета));	
			БюджетированиеСервер.ДополнитьСКДАналитикойПоВиду(СхемаКомпоновкиДанных, "СтатьяБюджетов");		
			БюджетированиеСервер.ДополнитьСКДВыражениямиПредставленияАналитики(СхемаКомпоновкиДанных,
			"НаборыДанных.АналитикаОборотов.Поля",
			"СтатьяБюджетов");	
			Период = БюджетированиеСервер.ЗначениеНастройкиСКД(КомпоновщикНастроек, "Период");
			НачалоПериода = Период.ДатаНачала;
			КонецПериода = Период.ДатаОкончания;
			ДопСвойства = КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства;
			
			ДопСвойства.Удалить("КоличествоДокументовКОтражениюВБюджетировании");
			Если РегистрыСведений.ЗаданияКОтражениюВБюджетировании.ТребуетсяОтражениеВБюджетированииДляОтчетаЗаПериод(
				НачалоПериода, КонецПериода, КоличествоДокументов) Тогда
				
				ФактическиеДанныеБюджетированияСервер.ОтразитьДокументыФоновымЗаданием(НачалоПериода, КонецПериода);
				ДопСвойства.Вставить("КоличествоДокументовКОтражениюВБюджетировании", КоличествоДокументов);
				ДопСвойства.Вставить("НачалоПериода", НачалоПериода);
				ДопСвойства.Вставить("КонецПериода", КонецПериода);
				
			КонецЕсли;	
			////////////////////////////////////////////////////////////­//////////////////////////////////////////
			КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
			ДанныеРасшифровки = Неопределено;
			МакетКомпоновки   = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
			ДокументРезультат = Новый ТабличныйДокумент;
			
			СкорректироватьСвязиНаборовДанныхМакетаКомпоновки(МакетКомпоновки);
			
			ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
			ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборы, ДанныеРасшифровки, Истина);
			
			ПроцессорВыводаВТабличныйДокумент = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
			ПроцессорВыводаВТабличныйДокумент.УстановитьДокумент(ДокументРезультат);
			ПроцессорВыводаВТабличныйДокумент.Вывести(ПроцессорКомпоновкиДанных);
			
			ФактическиеДанныеБюджетированияСервер.ВывестиАктуальностьОтраженияФактическихДанных(ДокументРезультат, ДопСвойства);
						
			ДокументРезультат.ОтображатьЗаголовки = Ложь;
			ДокументРезультат.ОтображатьСетку = Ложь;
			ДокументРезультат.АвтоМасштаб = Истина;
			
			Возврат ДокументРезультат;//.Показать();
Показать
21. Светлый ум 509 04.07.19 20:09 Сейчас в теме
Программное формирование СКД на форме :


Процедура ДействияФормыСформировать(Кнопка)
	
	
	Параметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаНач");
	Параметр.Значение = НачалоПериода;
	Параметр.Использование = Истина;
	Параметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаКон");
	Параметр.Значение = КонецПериода;
	Параметр.Использование = Истина;
	
	//Заголовок
	Параметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыВывода.Элементы.Найти("Title");	
	Нач = Формат(НачалоПериода, "ДЛФ=Д");
	Кон = Формат(КонецПериода,  "ДЛФ=Д");
	Параметр.Значение = "Отчет по ""Остаткам товаров"" за период, с: " + Нач + "---  по: "+  Кон;
	Параметр.Использование = Истина;
	
	ЭлементыФормы.Результат.Очистить();
	ЭтотОбъект.СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки);
	
	СгенерироватьКнопкиУправленияГруппировкой();
    ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(0);

КонецПроцедуры


Процедура _СменаВариантаНастройки (Элемент) 
	Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл 
		Если Элемент.Текст = Настройка.Представление тогда 
			КомпоновщикНастроек.ЗагрузитьНастройки(Настройка.Настройки); 
			Прервать; 
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры 

Процедура УстановитьВариантыНастроек()
	КП = ЭлементыФормы.ДействияФормы; 
	НоваяКнопка = КП.Кнопки.Вставить(1,"_ВариантыОтчетов", ТипКнопкиКоманднойПанели.Подменю, "Варианты отчетов", ); 
	НовоеДействие = Новый Действие("_СменаВариантаНастройки"); 
	ч = 1; 
	Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
		НоваяКнопка = КП.Кнопки._ВариантыОтчетов.Кнопки.Добавить("Вариант"+Строка(ч), ТипКнопкиКоманднойПанели.Действие, Настройка.Представление, НовоеДействие); 
		ч = ч + 1; 
	КонецЦикла; 
КонецПроцедуры
Показать
22. Светлый ум 509 05.07.19 04:02 Сейчас в теме
Вариант 2 Источники на форму СКД:

&НаСервере
Процедура СформироватьОтчетНаСервере()
	
	Если не ЗначениеЗаполнено(ВариантОтчета) Тогда
		Сообщить("Вы не выбрали вариант отчета - отчет не будет сформирован");	
	Иначе
		
		Для Каждого СтрНастроек Из ТаблицаНастроекВарианта Цикл
			Если не ЗначениеЗаполнено(СтрНастроек.Значение) и СтрНастроек.ЗапрещатьНезаполненныеЗначения Тогда
				Сообщить("Вы не выбрали "+СтрНастроек.Заголовок+" - отчет не будет сформирован");	
				Возврат;
			КонецЕсли;	
		КонецЦикла;	
		
		ОтчетОбъект = ЭтаФорма.РеквизитФормыВЗначение("Отчет");
		СхемаКомпоновки = ОтчетОбъект.ПолучитьМакет(ВариантОтчета);
		Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));	
		Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);
		
		Для Каждого СтрНастроек Из ТаблицаНастроекВарианта Цикл
			Если СтрНастроек.ЭлементОтбораИлиПараметр = "ЭлементОтбора" Тогда
				Для Каждого ЭлементОтбора Из Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
					Если Строка(ЭлементОтбора.ЛевоеЗначение) = СтрНастроек.Имя и
						 ЭлементОтбора.Представление = СтрНастроек.ПредставлениеОтбора Тогда
						ЭлементОтбора.ПравоеЗначение = СтрНастроек.Значение;
						ЭлементОтбора.Использование  = СтрНастроек.Использование;
						ЭлементОтбора.ВидСравнения = СтрНастроек.ВидСравнения;
					КонецЕсли;
				КонецЦикла;
			ИначеЕсли СтрНастроек.ЭлементОтбораИлиПараметр = "Параметр" Тогда
				Параметр = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(СтрНастроек.Имя);
				Параметр.Значение = СтрНастроек.Значение;
				Параметр.Использование = СтрНастроек.Использование;
			КонецЕсли;	
		КонецЦикла;
		
		ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
		КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
		МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки,Отчет.КомпоновщикНастроек.Настройки,ДанныеРасшифровки);
		ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
		ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
		Результат.Очистить();
		ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
		ПроцессорВывода.УстановитьДокумент(Результат);
		ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
		
		АдресХранилищаДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки, ЭтаФорма.УникальныйИдентификатор);
		
	КонецЕсли;	
	
КонецПроцедуры

Процедура ПоказатьПараметрыИОтборВариантаОтчета(ИмяСхемы)
	
	ТЗ = ЭтаФорма.РеквизитФормыВЗначение("ТаблицаНастроекВарианта");
	ТаблицаНастроекВрем = ТЗ.Скопировать();
	
	ТаблицаНастроекВарианта.Очистить();
	ОтчетОбъект = ЭтаФорма.РеквизитФормыВЗначение("Отчет");
	СхемаКомпоновки = ОтчетОбъект.ПолучитьМакет(ИмяСхемы);
	
	Для Каждого Параметр Из СхемаКомпоновки.Параметры Цикл
		СтрНастроек = ТаблицаНастроекВарианта.Добавить();
		СтрНастроек.Имя = Параметр.Имя;
		СтрНастроек.Заголовок = Параметр.Заголовок+":";
		СтрНастроек.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		СтрНастроек.Использование = Истина;
		СтрНастроек.ТипЗначения = Параметр.ТипЗначения;
		СтрНастроек.ЭлементОтбораИлиПараметр = "Параметр";
		СтрНастроек.ЗапрещатьНезаполненныеЗначения = Параметр.ЗапрещатьНезаполненныеЗначения;
		Если Параметр.ДоступенСписокЗначений Тогда
			СтрНастроек.Значение = Новый СписокЗначений;
		Иначе
			СтрНастроек.Значение = Параметр.ТипЗначения.ПривестиЗначение(Параметр.Значение);
		КонецЕсли;	                                        
	КонецЦикла;	
	
	Отбор = СхемаКомпоновки.ВариантыНастроек.Основной.Настройки.Отбор;
	
	Для Каждого ЭлементОтбора Из Отбор.Элементы Цикл
		
		СтрНастроек = ТаблицаНастроекВарианта.Добавить();
		СтрНастроек.Имя = Строка(ЭлементОтбора.ЛевоеЗначение);
		СтрНастроек.Заголовок = Строка(ЭлементОтбора.ЛевоеЗначение)+":";
		СтрНастроек.ВидСравнения = ЭлементОтбора.ВидСравнения;
		СтрНастроек.Использование = ЭлементОтбора.Использование;
		СтрНастроек.ЭлементОтбораИлиПараметр = "ЭлементОтбора";
		СтрНастроек.ПредставлениеОтбора = ЭлементОтбора.Представление;
		
		МассивТипов = Новый Массив;
		Для Каждого НаборДанных Из СхемаКомпоновки.НаборыДанных Цикл
			Для Каждого Поле Из НаборДанных.Поля Цикл	
				Если СокрЛП(СтрНастроек.Имя) = Поле.Поле Тогда
					МассивТиповПоля = Поле.ТипЗначения.Типы();
					Для Каждого Тип Из МассивТиповПоля Цикл
						МассивТипов.Добавить(Тип);
					КонецЦикла;	
				КонецЕсли;
			КонецЦикла;	
		КонецЦикла;
		
		Для Каждого Поле Из СхемаКомпоновки.ВычисляемыеПоля Цикл
			Если СокрЛП(СтрНастроек.Имя) = Поле.ПутьКДанным Тогда
				МассивТиповПоля = Поле.ТипЗначения.Типы();
				Для Каждого Тип Из МассивТиповПоля Цикл
					МассивТипов.Добавить(Тип);
				КонецЦикла;	
			КонецЕсли;
		КонецЦикла;
		
		СтрНастроек.ТипЗначения = Новый ОписаниеТипов(МассивТипов);
		
		Если СтрНастроек.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке или
			СтрНастроек.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии или
			СтрНастроек.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке или
			СтрНастроек.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСпискеПоИерархии Тогда
				СтрНастроек.Значение = Новый СписокЗначений;
		Иначе
				СтрНастроек.Значение = СтрНастроек.ТипЗначения.ПривестиЗначение(ЭлементОтбора.ПравоеЗначение);
		КонецЕсли;	
			
	КонецЦикла;
	
	Для Каждого СтрНастроек Из ТаблицаНастроекВарианта Цикл
		Для Каждого СтрНастроекСтарая Из ТаблицаНастроекВрем Цикл
			Если СтрНастроек.Имя = СтрНастроекСтарая.Имя и
				СтрНастроек.Заголовок = СтрНастроекСтарая.Заголовок и
				СтрНастроек.ЭлементОтбораИлиПараметр = СтрНастроекСтарая.ЭлементОтбораИлиПараметр и
                СтрНастроек.ПредставлениеОтбора = СтрНастроекСтарая.ПредставлениеОтбора Тогда
					СтрНастроек.Значение = СтрНастроекСтарая.Значение;	
					СтрНастроек.ВидСравнения = СтрНастроекСтарая.ВидСравнения;
			КонецЕсли;	
		КонецЦикла;	
	КонецЦикла;	
	

	
КонецПроцедуры
Показать
Прикрепленные файлы:
файлы.rar
23. Светлый ум 509 15.07.19 09:07 Сейчас в теме
Методические материал очного тренинга по теме
«Планирование производства в программе «1С:ERP Управление предприятием 2.0» (1С:ERP)

https://infostart.ru/public/275759/
24. Светлый ум 509 15.07.19 20:57 Сейчас в теме
Тестовые файлы
Прикрепленные файлы:
Тест_2.pdf
25. Светлый ум 509 22.07.19 10:10 Сейчас в теме
Универсальный генератор отчетов СКД (Управляемые формы, тонкий клиент)
https://infostart.ru/public/702221/
26. Светлый ум 509 22.07.19 10:11 Сейчас в теме
Очистка и удаление пользователей информационной базы (не до конца)
https://infostart.ru/public/907170/

Контроль над паролями пользователей для ЛЮБОЙ типовой конфигурации, работающей на платформе 8.3 и выше ( + Расширение)
https://infostart.ru/public/845506/
27. Светлый ум 509 24.07.19 10:56 Сейчас в теме
https://helpf.pro/faq/view/1847.html

17 правил для составления оптимального ЗАПРОСа к данным базы 1С

11) Интересный вариант оператора В - это проверка вхождения упорядоченного набора в множество таких наборов (Поле1, Поле2, ... , ПолеN) В (Поле1, Поле2, ... , ПолеN).

Пример:
ВЫБРАТЬ
Контрагенты.Ссылка
ГДЕ
(Контрагенты.Ссылка, Товары.Ссылка) В
(ВЫБРАТЬ Продажи.Покупатель, Продажи.Товар
ИЗ РегистрНакопления.Продажи КАК Продажи)
ИЗ
Справочник.Контрагенты,
Справочник.Товары   
Показать



15) Условие НЕ В в конструкции ГДЕ увеличивает время исполнения запроса, так как это своего рода НЕ (ИЛИ1 ИЛИ2 ... ИЛИn), поэтому для больших таблиц старайтесь использовать ЛЕВОЕ СОЕДИНЕНИЕ с условием ЕСТЬ NULL. Пример:

ВЫБРАТЬ
_ДемоКонтрагенты.Ссылка
ИЗ
Справочник._ДемоКонтрагенты КАК _ДемоКонтрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Документ._ДемоЗаказПокупателя КАК _ДемоЗаказПокупателя
ПО _ДемоКонтрагенты.Ссылка = _ДемоЗаказПокупателя.Контрагент
ГДЕ
_ДемоЗаказПокупателя.Контрагент ЕСТЬ NULL


16) При использовании Временных таблиц нужно индексировать поля условий и соединений в этих таблицах, НО, при использовании индексов запрос может выполняться еще медленнее. Поэтому необходимо анализировать каждый запрос с применением индекса и без, замерять скорость выполнения запроса и принимать окончательное решение.

Если вы помещаете во временную таблицу данные, которые изначально индексированы по некоторым полям, то во временной таблице индекса по этим полям уже не будет.

17) Если вы не используете Менеджер временных таблиц, то явно удалять временную таблицу не требуется, она будет удалена после завершения выполнения пакетного запроса, иначе следует удалить временную таблицу одним из способов: командой УНИЧТОЖИТЬ в запросе, вызвать метод МенеджерВременныхТаблиц.Закрыть().
136. Светлый ум 509 29.11.21 05:53 Сейчас в теме
(27) Использование В ИЕРАРХИИ в запросе:
ВЫБРАТЬ
	СтатьиДвиженияДенежныхСредств.Ссылка
ПОМЕСТИТЬ ВТСтатьяДДСОрганич
ИЗ
	Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств
ГДЕ
	СтатьиДвиженияДенежныхСредств.Код ПОДОБНО "3200000000"
	ИЛИ СтатьиДвиженияДенежныхСредств.Код ПОДОБНО "1200000000"
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ДоговорыКонтрагентов.Ссылка КАК Ссылка,
	ДоговорыКонтрагентов.СтатьяДвиженияДенежныхСредств КАК ОсновнаяСтатьяДвиженияДенежныхСредств,
	ВЫБОР
		КОГДА ДоговорыКонтрагентов.СтатьяДвиженияДенежныхСредств В ИЕРАРХИИ
				(ВЫБРАТЬ
					ВТСтатьяДДСОрганич.Ссылка
				ИЗ
					ВТСтатьяДДСОрганич КАК ВТСтатьяДДСОрганич)
			ТОГДА ЛОЖЬ
		ИНАЧЕ ИСТИНА
	КОНЕЦ КАК Поле1
ИЗ
	Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
Показать
154. Светлый ум 509 13.03.23 11:19 Сейчас в теме
(27)
Адаптированный под УПП 1.3 :

ВЫБРАТЬ
	Контрагенты.Ссылка КАК Ссылка
ИЗ
	Справочник.Контрагенты КАК Контрагенты,
	Справочник.Номенклатура КАК Номенклатура
ГДЕ
	(Контрагенты.Ссылка, Номенклатура.Ссылка) В
			(ВЫБРАТЬ
				Продажи.Контрагент,
				Продажи.Номенклатура
			ИЗ
				РегистрНакопления.Продажи КАК Продажи)
Показать
155. Светлый ум 509 13.03.23 11:38 Сейчас в теме
(154) Пример из реальной задачи (УПП):

- Необходимо отобрать все ТС, которые были зарегистрированы в течении отчётного периода (п.5.4. из первого окна)
в РС Регистрация ТС:
(Дата в записи с Видом записи = Регистрация) <= Конец периода (п.5.4.) И
(Дата в записи с Видом записи = Снятие с учета) >= Начало периода (п.5.4.)

ВЫБРАТЬ
	РегистрацияТранспортныхСредств.ОсновноеСредство,
	РегистрацияТранспортныхСредств.Период,
	РегистрацияТранспортныхСредств1.Период КАК ПериодСписания,
	РегистрацияТранспортныхСредств.НалоговаяБаза,
	РегистрацияТранспортныхСредств.НалоговаяЛьгота
ИЗ
	РегистрСведений.РегистрацияТранспортныхСредств КАК РегистрацияТранспортныхСредств
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрацияТранспортныхСредств КАК РегистрацияТранспортныхСредств1
		ПО РегистрацияТранспортныхСредств.Организация = РегистрацияТранспортныхСредств1.Организация
			И РегистрацияТранспортныхСредств.ОсновноеСредство = РегистрацияТранспортныхСредств1.ОсновноеСредство
ГДЕ
	РегистрацияТранспортныхСредств.Организация = &Орг
	И РегистрацияТранспортныхСредств.ОсновноеСредство В
			(ВЫБРАТЬ
				РегистрацияТранспортныхСредств2.ОсновноеСредство
			ИЗ
				РегистрСведений.РегистрацияТранспортныхСредств КАК РегистрацияТранспортныхСредств2
			ГДЕ
				РегистрацияТранспортныхСредств2.Организация = &Орг
				И РегистрацияТранспортныхСредств2.ОсновноеСредство = РегистрацияТранспортныхСредств.ОсновноеСредство
				И РегистрацияТранспортныхСредств2.ВидЗаписи = &ВидЗаписи_Списание
				И РегистрацияТранспортныхСредств2.Период > &ДатаНач)
	И ВЫБОР
			КОГДА РегистрацияТранспортныхСредств.ВидЗаписи = &ВидЗаписи_Регистрация
					И РегистрацияТранспортныхСредств.Период <= &ДатаКоН
				ТОГДА ИСТИНА
		КОНЕЦ
	И РегистрацияТранспортныхСредств1.ВидЗаписи = &ВидЗаписи_Списание
Показать
28. Светлый ум 509 24.07.19 11:14 Сейчас в теме
18) Наличие прикрепленного файла к Документу/Справочнику

ВЫБОР
	КОГДА ВложенныйЗапрос.Файл > 0
		ТОГДА 1
	ИНАЧЕ 0
КОНЕЦ
29. Светлый ум 509 24.07.19 12:49 Сейчас в теме
От стажера до эксперта
https://infostart.ru/public/1070298/

SQL-EX.RU, где есть много методических материалов и разнообразных заданий разного уровня сложности. Мы предлагаем пройти 80 запросов из учебного курса.

Правила и приемы доработки типовых конфигураций 1С
https://infostart.ru/public/647048/
31. Светлый ум 509 31.07.19 16:26 Сейчас в теме
32. Светлый ум 509 01.08.19 12:31 Сейчас в теме
Работа с изображениями / Групповая обработка изображений
https://infostart.ru/public/438923/
- компановка пакета в tif
--------------------------------------------------------------------------------------------
34. Светлый ум 509 06.08.19 06:34 Сейчас в теме
Универсальная загрузка XML
(с выбором загружаемых колонок)
https://infostart.ru/public/697785/
38. Светлый ум 509 20.08.19 16:30 Сейчас в теме
40. Светлый ум 509 20.08.19 16:58 Сейчас в теме
Соединение СКД и кросс-таблицы
Прикрепленные файлы:
ДДС - СКД плюс кросс таблица в обычном макете .erf
42. Светлый ум 509 20.08.19 17:20 Сейчас в теме
Кросс варианты:
Прикрепленные файлы:
КроссБезСКД .mxl
ДДС.mxl
43. Светлый ум 509 09.09.19 07:04 Сейчас в теме
Кросс-таблицы обычные
http://danila.org.ua/kross-tablitsa-1s-8-2-upravlyaemaya-forma/ (с примером dt)

Кросс-таблицы СКД (пример на БП_3)
https://infostart.ru/public/968830/
44. Светлый ум 509 09.09.19 07:20 Сейчас в теме
Пример преобразования ТЧ в кросс-таблицу (УФ)
https://infostart.ru/public/547892/
45. Светлый ум 509 09.09.19 07:50 Сейчас в теме
Простой пример кросс-таблицы (УПП)
https://infostart.ru/public/199592/
47. Светлый ум 509 09.09.19 10:29 Сейчас в теме
Пошаговые действия предшествующие формированию БДР:

1. Полностью заносите все документы по движению денежных средств(банк, касса)
2. Полностью проводите все движения ТМЦ (реализация, приобретение и списание материалов и т.д.)
3. Полностью проводите оприходование услуг (для их отражения на затратных счетах)
4. Проводите бухгалтерское закрытие периода
5. Формируете отчет о прибылях и убытках - собственно он и является БДР-ом.

https://forum.infostart.ru/forum63/topic48856/
48. Светлый ум 509 18.09.19 09:10 Сейчас в теме
Конфигурация "AXELOT: MDM Управление нормативно справочной информацией", релиз 2.0.3.1
50. Светлый ум 509 03.10.19 05:03 Сейчас в теме
Условия и циклы в тестах и тестовых сценариях вредны.

в тестах должно быть отражение реальной системы :)

1 Если есть некое условие, значит, это не один тестовый сценарий, а несколько.
А раз несколько сценариев у системы, значит, и тестовых сценариев должно быть несколько.
Значит, нужно в тестовой системе нужно зафиксировать эти разные тестовые сценарии

2 если внутри тест.сценария есть условие/цикл, как определить, какой из вариантов условия/цикла выполнялся, а какой нет?
ведь если какой-то не выполнился, значит, проверки этого поведения не было сделано и тестирование задачу проверки поведения системы выполнило только частично :(
51. Светлый ум 509 03.10.19 05:07 Сейчас в теме
artbear
https://infostart.ru/profile/9621/

По пунктам:
1. Изменение метаданных - сложный этап.
Но при создании генератора данных в xUnitFor1C мы как раз постарались помочь решить эту проблему.

После изменения метаданных есть несколько способов реагирования.
1.1 ничего не делать :) , т.к. вполне может быть, что добавлен не столь значащий реквизит документ и документ, созданный из макета, все равно будет находиться в консистентом состоянии
1.2 если все-таки добавлен значащий реквизит, можно выбрать один из 2х способов ниже.
1.3 заново сделать шаблон документа. это может быть трудно - например. нет подходящего документа, или на документ много завязано других ссылок

1.4 подредактировать макет вручную !
на самом деле это не так сложно.
+ Структура макета довольно простая и специально сделана для повышения человекочитаемости и человеко-редактируемости. Табличный документ рулит :)
+ Генератор специально не загружает/не выгружает, а пропускает поля, значения которых не отличается от полей пустого документа.
+ например, значение Ложь для реквизита с типом Булево не будет выгружено или пустая ссылка для ссылочного типа не будет выгружена.
+ в итоге в макете остаются только значащие поля, в отличие от, например, универсальной выгрузки xml, которая очень зависима от изменения метаданных
+ можно просто добавить несколько полей в макет документа - добавить имя поля, его значение. в большинстве случае этого хватает.

>1. Допустим делаю документ, выгрузил в шаблон макет а потом изменились его реквизиты(метаданные) выходит мне надо заново делать шаблон или пытаться править макет вручную. Это не удобно. Есть ли способ лучше?
>2. Допустим я тестирую некий функционал который пишет свои результаты в базу, далее мне надо тестить функционал который зависим от предыдущего и тд, те один зависит от другого. Сейчас я просто вызываю из одного теста другой. Насколько это правильно? Если я буду делать шаблоны и не вызывая "предыдущий функционал" сразу вносить данные в базу для работы текущего тестирования то при изменениях мне придется много менять а это очень неудобно.

Здесь нет простого решения, все зависит от конкретных особенностей.
Базовые рекомендации
+ либо используйте сценарии, т.е. из одного теста вызывайте другой
+ это возможно разными средствами xUnitFor1C -
+ например, ручной вызов теста из другого теста
+ либо используйте сценарный тест в самом xUnitFor1C - смотрите wiki продукта
+ либо можно развязать эти тесты от взаимного использовании и использовать только данные
+ сгенерируйте макет от первого теста и используйте его во втором.
+ тесты будут независимы, их будет легко проверять и разбирать в случае падения одного из тестов.

Напоминаю, что если тест/сценарий падает, то это возможно по 3-м причинам:
+ изменилось поведение системы (например, программист поменял код)
+ изменился тест
+ изменились данные

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

> Есть ли какой то способ/рекомендация как организовывать тесты ведь если их много и они тестят функции зависимые от др и при этом прогружают данные из макета(СериализаторMXL) то по прошествии времени не особо помнишь что для чего.

Есть разные варианты, как всегда :)
+ Можно делить по блокам функционала - один каталог на верхнем уровне соответствует одному блоку
+ Можно делить по метаданным - один каталог на верхнем уровне соответствует одному метаданному
+ можно совмещать эти подходы
+ например, создание НСИ - отдельный каталог
+ создание документов - другой каталог
+ блоки функциональности - третий каталог
52. Светлый ум 509 11.10.19 09:44 Сейчас в теме
Консоль запросов с алгоритмами

1) Консоль Внедренца v.3.3
https://infostart.ru/public/861748/
(Мощный инструмент)

2) Консоль запросов с возможностью сравнением данных между базами
https://infostart.ru/public/1113104/

3) Выполнение кода (Предприятие 1С)
https://infostart.ru/public/1039993/


---------------------------------------------------------------------------------------------------------
Групповая проверка доработок
https://infostart.ru/public/1056811/

ERWIN - визуализация схемы данных
https://infostart.ru/public/995921/

Хранение модулей во внешних обработках. Меняем код без обновления конфигурации
https://infostart.ru/public/988067/

Механизм версионирования для подсистемы "Дополнительные отчеты и обработки"
https://infostart.ru/public/971397/
53. Светлый ум 509 11.10.19 11:08 Сейчас в теме
Создание текстов договоров по шаблонам Word и организация их хранения в присоединенных файлах
https://infostart.ru/public/1131940/

- хранение присоединенных файлов для БП_3
54. Светлый ум 509 14.10.19 10:37 Сейчас в теме
Проверка кода в пользовательском режиме
https://infostart.ru/public/1126028/
55. Светлый ум 509 15.10.19 13:13 Сейчас в теме
56. Светлый ум 509 15.10.19 13:14 Сейчас в теме
57. Светлый ум 509 16.10.19 07:09 Сейчас в теме
Сканирочка-8. Модуль подключения сканера штрихкода к произвольной конфигурации 1С
https://infostart.ru/public/82996/
58. Светлый ум 509 16.10.19 07:17 Сейчас в теме
Работа с пользовательскими настройками: просмотр, редактирование, удаление, копирование (1см)
https://infostart.ru/public/663868/

Сохранение и восстановление пользовательских настроек при помощи сериализации в xml (управляемые формы)
https://infostart.ru/public/981707/
59. Светлый ум 509 16.10.19 11:15 Сейчас в теме
60. Светлый ум 509 21.10.19 11:18 Сейчас в теме
Повторный вывод шапки при печати новой страницы:

1)
https://helpf.pro/faq82/view/1730.html
// ТабДокумент.ПовторятьПриПечатиСтроки = ТабДокумент.Область("R21:R22");

2)
ТабличныйДокумент (SpreadsheetDocument)
ПроверитьВывод (CheckPut)

Синтаксис:ПроверитьВывод(<Таблицы>)

Пример: Т.Добавить(ШапкаДокумента);
Т.Добавить(СтрокаДокумента);
Т.Добавить(ПодвалДокумента);
Если Не ТабДок.ПроверитьВывод(Т) Тогда
Сообщить("Документ не умещается на страницу!");
КонецЕсли;
61. Светлый ум 509 21.10.19 13:24 Сейчас в теме
Работа с табличным документом (а-ля) Excel
индивидуальный помощник или скромная замена EXCEL
https://infostart.ru/public/640897/
(обычные формы)
63. Светлый ум 509 22.10.19 10:36 Сейчас в теме
64. Светлый ум 509 24.10.19 10:15 Сейчас в теме
65. Светлый ум 509 24.10.19 10:26 Сейчас в теме
РИБ минимальный набор


1) Быстрое создание начального полного подчиненного узла РИБ
https://infostart.ru/public/65830/

2) Отключение и подключение узла распределенной базы (РИБ)
https://forum.infostart.ru/forum86/topic182053/

3) Как создать периферийную базу при помощи DT
https://infostart.ru/public/398538/
66. Светлый ум 509 24.10.19 11:00 Сейчас в теме
Последовательность привязок-отвязок РИБ

Корректное отключение от главного узла РИБ и создание самостоятельной БД. Быстрое создание/восстановление узла РИБ без выгрузки начального образа для конфигураций на основе БСП

https://infostart.ru/public/458570/
68. Светлый ум 509 06.11.19 11:09 Сейчас в теме
Замер производительности
https://infostart.ru/public/96547/

Вариант_1 (УФ):
&НаКлиенте
Перем Замер;

&НаКлиенте
Процедура НачатьЗамер()
    Замер = ТекущаяДата();
КонецПроцедуры

&НаКлиенте
Функция ЗакончитьЗамер()
   
   КонВремя = ТекущаяДата();  КонДни      = 0;  КонЧасы     = 0;  КонМинуты   = 0; КонСекунды = 0;
   Если ПустаяСтрока(Замер) Тогда
        // Раз нет стартовой даты - значит процедура начала отсчета времени не была запущена.
        Возврат "Замер времени не начат!";
    КонецЕсли;

    ОстатокВремени = КонВремя - Замер;
    КонДни          = Цел(ОстатокВремени / 86400); //++ 86400 - Количество секунд в сутках
    ОстатокВремени = ОстатокВремени - КонДни * 86400;
    КонЧасы         = Цел(ОстатокВремени / 3600); //++ 3600 - Количество секунд в часе
    ОстатокВремени  = ОстатокВремени - КонЧасы * 3600;
    КонМинуты       = Цел(ОстатокВремени / 60); //++ 60 - Количество секунд в минуте
    ОстатокВремени  = ОстатокВремени - КонМинуты * 60;
    КонСекунды      = ОстатокВремени;
    ТекСтрока       = Формат(КонДни,"ЧН=2; ЧН=0; ЧВН=") + "/" + Формат(КонЧасы,"ЧЦ=2; ЧН=0; ЧВН=") + ":" 
+ Формат(КонМинуты,"ЧЦ=2; ЧН=0; ЧВН=") + ":" + Формат(КонСекунды,"ЧЦ=2; ЧН=0; ЧВН=");
    Возврат ТекСтрока;
КонецФункции
Показать


Вариант_2
ВремяСтарта = ТекущаяДата(); // ... Далее выполняется нужная обработка ... 
ЗатраченоСекунд = ТекущаяДата() - ВремяСтарта; 
Час_Мин_Сек = Строка(Формат(ЗатраченоСекунд/3600-0.5,"ЧЦ=2;ЧН=;ЧВН=") + ":" 
+ Формат(ЗатраченоСекунд%3600/60-0.5,"ЧЦ=2;ЧН=;ЧВН=") + ":" 
+ Формат(ЗатраченоСекунд%60,"ЧЦ=2;ЧН=;ЧВН=")); // Если ЗатраченоСекунд = 3723, то Час_Мин_Сек = "01:02:03" 

Час_Мин_Сек = Формат('00010101'+ЗатраченоСекунд, "ДФ=HH:mm:ss"); 


Вариант_3
КлючеваяОперация = "СозданиеФормыКонтактныеЛица"; 
ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(КлючеваяОперация); 
69. Светлый ум 509 13.11.19 11:23 Сейчас в теме
Инструкции для программистов

1) Инструкция как написать консоль запросов с конструктором на управляемых
https://infostart.ru/public/719293/

2) Инструкция как создать загрузчик из табличного документа :


3) Загрузка из табличного документа копи-пастом (где-то есть старая инструкция)
https://infostart.ru/public/1000443/

4) Инструкция - Создание подключаемой обработки табличной части (УФ)
https://infostart.ru/public/825702/

5) Инструкция загрузки из Excel
https://programmist1s.ru/zagruzka-iz-excel-v-1s/
70. Светлый ум 509 15.11.19 05:43 Сейчас в теме
6) Инструкция загрузки из excel
https://1s83.info/programmirovanie/zagruzka-iz-excel-v-1s-dlya-programmista.html

//ТабличныйДокумент.Прочитать(Объект.ФайлExcel); - для платформы с версии 8.3.10
72. Светлый ум 509 25.11.19 04:58 Сейчас в теме
Обработка временной или постоянной замены пароля Аутентификации 1С: Предприятия 8.2-8.3
https://habr.com/ru/post/275999/
https://cloud.mail.ru/public/6Nad/k2GGjVEnb
73. Светлый ум 509 25.11.19 06:21 Сейчас в теме
https://infostart.ru/public/449681/

Универсальные функции с примерами использования

1. Замер времени выполнения
2. Проверка значения на вхождение в некоторый интервал
3. Разбиение строки на левую и правую часть
4. Преобразование табличного документа в коллекцию
4.1 Табличный документ в таблицу значений (перебор)
4.2. Табличный документ в дерево значений
5. Загрузка файлов: выбор на клиенте, обработка на сервере
6. Попытка записи данных в файл с таймаутом на время записи
7. Проверка интернет-соединения (ping)
8. Быстрое описание типа
9. Шаблон чтения Excell через ADO
10. Объединение ячеек шапки табличного документа с повторяющимся текстом
11. Формирование идентификатора по строке
12. Формирование представления по идентификатору
13. Формирование структуры для первой (единственной) записи результата запроса
74. Светлый ум 509 02.12.19 11:41 Сейчас в теме
75. Светлый ум 509 02.12.19 11:53 Сейчас в теме
76. Светлый ум 509 16.12.19 09:48 Сейчас в теме
1) Последовательность событий при проведении документа
2) Последовательность событий при отмене проведения
3)Последовательность событий при открытии формы

https://github.com/kuzyara/Sequences-of-events-for-1C-objects
https://infostart.ru/public/1098803/
77. Светлый ум 509 18.12.19 10:45 Сейчас в теме
78. Светлый ум 509 18.12.19 11:32 Сейчас в теме
(77)
1. Общее - 1 : 67
2. Планирование - 68 : 113
3. Бюджетирование - 114 : 158
4.Заказы - 158 : 202

https://xn----1-bedvffifm4g.xn--p1ai/1c-erp-2/1s-professional/razdel03/vopros03-01/
79. Светлый ум 509 23.12.19 05:56 Сейчас в теме
Семь рекомендуемых бесплатных курсов Microsoft для ИТ-администраторов
https://infostart.ru/public/973515/
80. Светлый ум 509 23.12.19 08:01 Сейчас в теме
Курс по управлению проектами : 28 частей
https://infostart.ru/profile/1008281/objects/

1) Устав проекта
https://infostart.ru/public/903702/

2) Создание концепции проекта (project scope statement)
https://infostart.ru/public/944448/

3) Управление качеством: блок-схемы, чек-листы
https://infostart.ru/public/966173/

4) Алгоритм управления сроками с использованием специального софта.
https://infostart.ru/public/983387/
81. Светлый ум 509 23.12.19 09:25 Сейчас в теме
1) Курс "Налоговый учет ПБУ (18/02)" (в формате видеокурса и онлайн-курса с 22 по 24 января 2020 г.)
https://infostart.ru/public/861990/
(от 2100 за видео)

2) Концепция прикладного решения "1С:ERP Управление предприятием 2" (в формате видеокурса и онлайн-курса 6-7 февраля 2020 г.)
https://infostart.ru/public/860626/
(от 2100 за видео)

3) Курс позволяет получить целостное представление о назначении и возможностях прикладного решения, а также подготовиться к экзамену "1С:Профессионал". На курсе представлен материал по "1С:ERP " версии 2.4

Для обучения предоставляется электронная книга, база из 600 вопросов для подготовки к тесту 1С:Профессионал, программа 1С:ERP 2. Также есть возможность задавать вопросы преподавателю во время и после окончания обучения в течении 90 дней.

! Технология работы с функционалом управления производством и ремонтами подробно рассматривается на отдельном курсе
(от 2100 за видео)
82. Светлый ум 509 23.12.19 09:57 Сейчас в теме
(81)
"Управление производством и ремонтами в прикладном решении "1С:ERP Управление предприятием"
https://infostart.ru/public/861043/


Аудитория курса
Курс ориентирован на пользователей ситемы, а также для подготовки к экзамену 1С:Профессионал
Объем курса
Видеокурс - 15 часа видеолекций / Онлайн-курс - 32 уч.ч

Расписание курса
Вы можете смотреть видеолекции курса в любое удобное время, доступ к материалам предоставляется на 90 дней
Онлайн-занятия проходят 4 дня, с 10 до 17 мск.
Даты: 27-30 января, 25-28 февраля, 16-19 марта.
83. Светлый ум 509 24.12.19 05:25 Сейчас в теме
84. Светлый ум 509 24.12.19 10:03 Сейчас в теме
Партионный учет товаров в конфигурациях УТ, КА, ЕРП
https://infostart.ru/public/955808/
85. Светлый ум 509 24.12.19 10:09 Сейчас в теме
Бюджетирование:

1) Бюджетирование и бюджетное планирование. Теория
https://infostart.ru/public/400683/

2) Еще о бюджетном управлении
https://infostart.ru/public/66629/

3) Диалоги о бюджетировании
https://infostart.ru/public/343440/

4) Бюджетирование - объект автоматизации. Часть 1. Актуальное из практики (от автора табулы/фин-план)
https://infostart.ru/public/1105692/
87. Светлый ум 509 24.12.19 13:01 Сейчас в теме
(85) 2.1) Что такое бюджетирование и подходы к его автоматизации
https://infostart.ru/public/66601/
88. Светлый ум 509 13.01.20 04:49 Сейчас в теме
https://forum.infostart.ru/forum15/topic187386/

Инструкция по переходу на с УТ 10.3 на УНФ 1.6
89. Светлый ум 509 13.01.20 11:29 Сейчас в теме
Анкета предпроектного обследования
https://infostart.ru/public/561378/
90. Светлый ум 509 14.01.20 13:29 Сейчас в теме
Настройки внешних отчетов и обработок для подключения в базу (БСП)

0) пример отчета СКД - можно взять из БСП "_ДемоОтчетПоСчетамНаОплатуКонтекстный_БСП" (подменив запрос на более простой)

1) пример обработки: https://infostart.ru/public/84001/

2) общее описание подхода, с шаблонами отч.,обр., впф : https://infostart.ru/public/558559/
91. Светлый ум 509 15.01.20 07:52 Сейчас в теме
(90) По примеру статьи создания болванки создания и регистрации внешней обработки:
https://wiseadvice-it.ru/o-kompanii/blog/articles/vneshnyaya-obrabotka-v-1s-8-3/

Итоговая процедура регистрации:
(добавляем ее в модуль объекта и больше ничего - все будет работать)

Функция СведенияОВнешнейОбработке() Экспорт
	
	ДанныеДляРег = Новый Структура();
	ДанныеДляРег.Вставить("Наименование","Новая внешняя обработка");
	ДанныеДляРег.Вставить("БезопасныйРежим", Истина);
	ДанныеДляРег.Вставить("Назначение", Новый Массив);
	ДанныеДляРег.Вставить("Информация", НСтр("ru = '""Болванка""'"));	
	//ДанныеДляРег.Вставить("ВерсияБСП", "2.1.2.1");
	ДанныеДляРег.Вставить("Версия", "1.0.0.1");
	ДанныеДляРег.Вставить("Вид", Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка);
	ТабЗнКоманды = Новый ТаблицаЗначений;
	ТабЗнКоманды.Колонки.Добавить("Идентификатор");
	ТабЗнКоманды.Колонки.Добавить("Использование");
	ТабЗнКоманды.Колонки.Добавить("Представление");
	НовСтрока = ТабЗнКоманды.Добавить();
	НовСтрока.Идентификатор = "НоваяВнешняяОбработка";
	НовСтрока.Использование = "ОткрытиеФормы";
	НовСтрока.Представление = "Новая внешняя обработка";
	ДанныеДляРег.Вставить("Команды", ТабЗнКоманды);
	Возврат ДанныеДляРег;
	
КонецФункции
Показать
92. cprit 941 20.01.20 16:03 Сейчас в теме
Добрый день!
Можем ли мы использовать размещенные тут разработки в свободно распространяемой подсистеме https://github.com/cpr1c/tools_ui_1c?

И если да, то можно ли без старт мани получить их? В первую очередь интересуют Отключение пользователей управляемые формы, ЗапускПодПользователем - Управляемые формы, КонсольЗапросов_УФ_83,
Удобная читалка XML в 1С 8.2 (обычные формы),ОтладкаВнешнейПечатнойФормы.82(если она для БСП)
93. Светлый ум 509 31.01.20 11:58 Сейчас в теме
Оформление динамических списков, по примеру статьи с зазеркалья:
https://wonderland.v8.1c.ru/blog/obrabotka-i-oformlenie-dannykh-dinamicheskogo-spiska/

//Задает оформление списку и изменяем строки динамического списка
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ДС_Ключи", Строки.ПолучитьКлючи());
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	СправочникСЗ.Ссылка КАК Ссылка
	|ИЗ
	|	СправочникСЗ КАК СправочникСЗ
	|ГДЕ
	|	СправочникСЗ.Ссылка В(&ДС_Ключи)";	
	ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		ТекущаяСтатья = ВыборкаДетальныеЗаписи.Ссылка;
		СтрокаСписка  = Строки[ВыборкаДетальныеЗаписи.Ссылка];
		
		//1.Получаем список ЧегоЛибо
		"ВЫБРАТЬ ПЕРВЫЕ 5"	
		
		ВыборкаЦДЗ                   = ЗапросЦО.Выполнить().Выбрать();
		Если ВыборкаЦДЗ.Количество() = 0 Тогда 
			//Выделяем цветом не принадлижащих к консолидирующему предприятию
			Попытка
				СтрокаСписка.Оформление["Код"].УстановитьЗначениеПараметра("ЦветТекста",   WebЦвета.НейтральноСерый);
				СтрокаСписка.Оформление["Наименование"].УстановитьЗначениеПараметра("ЦветТекста",     WebЦвета.НейтральноСерый);
				СтрокаСписка.Оформление["Код_A"].УстановитьЗначениеПараметра("ЦветТекста",     WebЦвета.НейтральноСерый);
				СтрокаСписка.Оформление["Код_B"].УстановитьЗначениеПараметра("ЦветТекста",     WebЦвета.НейтральноСерый);
				СтрокаСписка.Оформление["ПредставлениеЦФО"].УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.НейтральноСерый);
				СтрокаСписка.Оформление["Ответственный"].УстановитьЗначениеПараметра("ЦветТекста",    WebЦвета.НейтральноСерый);
			Исключение
			КонецПопытки;	
			
			Продолжить;
			
		КонецЕсли;		
		
		ПредставлениеСтрокой                     = "";
		ПредставлениеЦО_Строкой                  = "";
		ПредставлениеРуководителя                = "";
		ПринадлежитКонсолидирующемуПредприятию   = Ложь;	
		
		ТаблицаОтветственных = Новый ТаблицаЗначений;
		СтрокаСписка.Данные["ПредставлениеЦО"] = ПредставлениеСтрокой;
		
		//Выделяем цветом не принадлижащих к ЦО
		Если НЕ ПринадлежитК_ЦО Тогда 
			Попытка //исключение ошибок при перестроении списка
			СтрокаСписка.Оформление["Код"].УстановитьЗначениеПараметра("ЦветТекста",   WebЦвета.НейтральноСерый);
			СтрокаСписка.Оформление["Наименование"].УстановитьЗначениеПараметра("ЦветТекста",     WebЦвета.НейтральноСерый);
			СтрокаСписка.Оформление["Код_А"].УстановитьЗначениеПараметра("ЦветТекста",     WebЦвета.НейтральноСерый);
			СтрокаСписка.Оформление["Код_В"].УстановитьЗначениеПараметра("ЦветТекста",     WebЦвета.НейтральноСерый);
			СтрокаСписка.Оформление["ПредставлениеЦО"].УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.НейтральноСерый);
			СтрокаСписка.Оформление["Ответственный"].УстановитьЗначениеПараметра("ЦветТекста",    WebЦвета.НейтральноСерый);
			Исключение
			КонецПопытки;
		КонецЕсли;		
				
	КонецЦикла;	
	
КонецПроцедуры
Показать
94. Светлый ум 509 07.02.20 07:43 Сейчас в теме
https://infostart.ru/journal/news/mir-1s/o-nachale-prodazh-onlayn-produkta-1s-baza-znaniy-po-metodologiyam-vnedreniya-i-soprovozhdeniya_1191374/

//Как приобрести
Продажа осуществляется только официальным пользователям программных продуктов 1С, зарегистрированным на территории Российской Федерации сроком на 12 месяцев (доступно продление неограниченное количество раз) с доступом до 5 пользователей за 22 500 руб. Тестовый доступ к продукту не предусмотрен.

Про «1С:Технологию корпоративного внедрения 2.0»
«1С:Технология корпоративного внедрения 2.0» разработана на основании положений отечественных и международных стандартов и сводов знаний, «лучших практик», документов и материалов фирмы «1С», отечественном опыте реализации проектов создания и внедрения информационных систем на базе программных продуктов фирмы «1С» с целью:

определения общих подходов к выполнению проектов создания и внедрения информационных систем;
повышения эффективности организации и управления проектами;
обеспечения качества внедрений программных продуктов фирмы «1С» и повышение удовлетворенности заказчиков.
1С:ТКВ включает в себя:

рекомендации по организации и применению основных процессов (процессов создания результатов) проекта:
описание жизненного цикла проекта (ЖЦП) создания и внедрения ИС;
описание регулярных мероприятий управления проектами;
описание работ по блоку «Производительность системы»;
описание работ по блоку «Информационная безопасность»;
авторский надзор фирмы «1С»;
роли и основные обязанности участников команды проекта.
48 шаблонов документов, включая:
План-график и бюджет проекта,
Полный пакет документов управления проектом,
Концепции, проектные решения;
29 примеров документов, включая:
План-график и бюджет проекта,
Полный пакет документов управления проектом;
Базу знаний по рискам проекта.
95. Светлый ум 509 07.02.20 10:58 Сейчас в теме
//ВПФ на СКД

	СсылкаНаОбъектПФ = Объект.Ссылка;
	
	ПечатнаяФормаВыгрузкаExcel.Очистить();
	ДокСсылка             = СсылкаНаОбъектПФ;
	
	СхемаКомпоновкиДанных = Документы.Экземпляр.ПолучитьМакет("ПечатнаяФорма1");
	
	КолонкиТаблицыДанныхВидаБюджета = СформироватьКолонкиТаблицы();
	Периодичности     = Новый Массив;
	МассивПериодов  = ПериодыОтчета(НачалоПериода, ОкончаниеПериода, МинимальнаяПериодичность);
	
	МассивПериодовТаблицей = ВернутьТаблицуПериодов(МассивПериодов);
	НаборыДанных           = Новый Структура("Периоды", МассивПериодовТаблицей);
	
	Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", ДокСсылка);
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ответственный", Ответственный);
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Валюта", Валюта);
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Подразделение", Подразделение);	
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ОтборУслОформлВид2", 2);

	КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
	КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
	
	НастройкиКомпоновщика     = КомпоновщикНастроек.Настройки;
	КомпоновщикМакета         = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки           = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновщика);
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, НаборыДанных);
	
	ДокументРезультат         = ПечатнаяФормаВыгрузкаExcel;
	ПроцессорВывода           = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);	
	Возврат ДокументРезультат; //ТабДок
Показать
96. Светлый ум 509 10.02.20 10:45 Сейчас в теме
Код-ревью - правильный подход к написанию КОДа
https://infostart.ru/public/1089005/

как его ввести у себя
https://infostart.ru/public/1093475/

аналог с хабра
https://habr.com/ru/post/250489/
97. Светлый ум 509 20.02.20 11:38 Сейчас в теме
Управление формами из общего модуля
https://infostart.ru/public/199480/
+1
98. Светлый ум 509 21.02.20 10:55 Сейчас в теме
Универсальный обмен данными XML (с гибкими отборами и сохранением вариантов настроек)

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

Проверялась на 1С:ERP

https://infostart.ru/public/1055196/

https://github.com/cpr1c/tools_ui_1c/commit/fddeb56f41c54109c8b59cfab1fa92c­f0bdd33d5#diff-f5780bde728f88ba3c3c27c8a8ae5c16
99. Светлый ум 509 21.02.20 12:15 Сейчас в теме
взято с https://infostart.ru/public/118784/ - рабочий вариант,
взято от сюда http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=625538

&НаКлиенте
Процедура ОткрытьФормуНового(Команда)
 
               Форма = ПолучитьФорму("Документ.ПродажаТоваровУслуг.Форма.ФормаДокумента");
               ДанныеФормы = Форма.Объект;
               ЗаполнитьНаСервере(ДанныеФормы);
               КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
               Форма.Открыть();
 
КонецПроцедуры
 
&НаСервере
Процедура ЗаполнитьНаСервере(НовыйОбъект)
               НовыйОбъект.Контрагент = Справочники.Контрагенты.НайтиПоКоду("000000005");          
КонецПроцедуры
Показать
103. Светлый ум 509 25.02.20 03:52 Сейчас в теме
Универсальный обмен XMl программно

//1. Определяем вид документа и помещаем в списки значений	по типам
	
	//Предворительная очистка списков
	СписокПоступлениеТоваровУслуг_ОтборДок.Очистить();
	СписокРеализаций_ОтборДок.Очистить();	
	СписокЗаказПокупателей_ОтборДок.Очистить();
	СписокСчетДоговор_ОтборДок.Очистить();
	СписокСчФактПолуч_ОтборДок.Очистить();	
	СписокСчФактВыданн_ОтборДок.Очистить();
	СписокСчетНаОплатуПокупателю_ОтборДок.Очистить();
	СписокПлатПоручВходящее_ОтборДок.Очистить();
	СписокПлатПоручИсходящее_ОтборДок.Очистить();	
	СписокПлатТребовВыставленное_ОтборДок.Очистить();
	СписокПлатТребовПолученное_ОтборДок.Очистить();
	СписокПоступлениеДопРасходов_ОтборДок.Очистить();
	СписокПриходноКассовыйОрдер_ОтборДок.Очистить();
	СписокРасходноКассовыйОрдер_ОтборДок.Очистить();
	СписокОплатаПлетежнымиКартами_ОтборДок.Очистить();
	СписокКорректировкаДолга_ОтборДок.Очистить();

	
	Для Каждого ТекСтрокаСписокВсехДок из Доки Цикл 
		ФлагОтбора = ТекСтрокаСписокВсехДок.Икона;
		//РТУ
		Если ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.РеализацияТоваровУслуг.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокРеализаций_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
			//ПТУ	 
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ПоступлениеТоваровУслуг.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокПоступлениеТоваровУслуг_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
			//Заказы
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ЗаказПокупателя.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокЗаказПокупателей_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.СчетДоговор.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокСчетДоговор_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);	 	 
			//СчетФактуры
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.СчетФактураПолученный.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокСчФактПолуч_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);	 
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.СчетФактураВыданный.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокСчФактВыданн_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.СчетНаОплатуПокупателю.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокСчетНаОплатуПокупателю_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);	 
			//Платежки
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ПлатежноеПоручениеВходящее.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокПлатПоручВходящее_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);	
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ПлатежноеПоручениеИсходящее.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокПлатПоручИсходящее_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);	
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ПлатежноеТребованиеВыставленное.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокПлатТребовВыставленное_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);	
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ПлатежноеТребованиеВыставленное.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокПлатТребовПолученное_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);	
			//ПостДопРасходов
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ПоступлениеДопРасходов.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокПоступлениеДопРасходов_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
			//Ордера
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ПриходныйКассовыйОрдер.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокПриходноКассовыйОрдер_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.РасходныйКассовыйОрдер.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокРасходноКассовыйОрдер_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
			//Прочее
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.ОплатаОтПокупателяПлатежнойКартой.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокОплатаПлетежнымиКартами_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
		ИначеЕсли ТипЗНЧ(ТекСтрокаСписокВсехДок.Ссылка)= ТипЗНЧ(Документы.КорректировкаДолга.ПустаяСсылка()) И ФлагОтбора Тогда
			СписокКорректировкаДолга_ОтборДок.Добавить(ТекСтрокаСписокВсехДок.Ссылка);
			//
			
		КонецЕсли;	 	 
	КонецЦикла;	 
	
	//2. Инициализируем правила обмена 
	Обработка = ЭтотОбъект; //Обработки.УниверсальныйОбменДаннымиXML.Создать();
	Обработка.РежимОбмена = "Выгрузка";
	Обработка.ФлагРежимОтладки = Истина;

	
	ВремФайл = ПолучитьИмяВременногоФайла("xml");
	
	//V 4.1.2 - Разделение на правила с перезаписью объектов и без (при обмене)
	Если НЕ ФлПерезаписыватьДоки Тогда
		МакетПравилОбмена = ПолучитьМакет("ПравилаВыгрузки");
	Иначе
		МакетПравилОбмена = ПолучитьМакет("ПравилаВыгрузкиПерезаписьОбъектовПриОбмене");
	КонецЕсли;
	
	МакетПравилОбмена.Записать(ВремФайл);
	
	Обработка.ИмяФайлаПравилОбмена = ВремФайл;//ФайлПравилОбмена; 
	Обработка.ЗагружатьДанныеВРежимеОбмена = Истина;
	Обработка.ЗаписыватьРегистрыНаборамиЗаписей = Истина;
	Обработка.ЗапоминатьЗагруженныеОбъекты = Истина;
	Обработка.ИспользоватьОтборПоДатеДляВсехОбъектов = Ложь;
	
	Обработка.ДатаНачала    = НачалоДня(НачВыгрузки_ОтборДок);
	Обработка.ДатаОкончания = КонецДня(КонВыгрузки_ОтборДок);
	Обработка.ВыгружатьТолькоРазрешенные = Истина; 
	Обработка.ИмяФайлаОбмена = ИмяФайлаОбмена; 
	Обработка.ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки = 0; // 0 - не снимать регистрацию, 1 - снимать регистрацию 
	
	//###
	Обработка.НепосредственноеЧтениеВИБПриемнике = Истина;
	Обработка.ТипИнформационнойБазыДляПодключения = ТипИнформационнойБазыДляПодключения;
	
	мУниверсальнаяВыгрузкаДанных = ЭтотОбъект;
	//мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки.Строки[0].Строки[0].НастройкиПостроителя = мУниверсальнаяВыгрузкаДанных.ПостроительОтчета.ПолучитьНастройки();
	//мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки.Строки[0].Строки[0].ИспользоватьОтбор = Истина;
	
	Обработка.ЗагрузитьПравилаОбмена();
	УдалитьФайлы(ВремФайл);
	
	//3.Обход дерева правил и подстановка "Списков ссылок документов" в отборы
	
	//ВременнаяТаблицаПравил = Обработка.ТаблицаПравилВыгрузки.Скопировать();
	ВременнаяТаблицаПравил = Обработка.ТаблицаПравилВыгрузки;
	
	ПереместитьОтборИзСписка_вПравила(ВременнаяТаблицаПравил, мУниверсальнаяВыгрузкаДанных);
	
	//Открываем обработку
	//ОсновнаяФормаОбработкиУнОбменXML = ЭтотОбъект.ПолучитьФорму("Форма");
	//ОсновнаяФормаОбработкиУнОбменXML.Открыть();
	//
	//Если НепосредственноеЧтениеВИБПриемнике Тогда
	//	ОсновнаяФормаОбработкиУнОбменXML.ЭлементыФормы.ПанельПараметрыВыгрузки.ТекущаяСтраница = ОсновнаяФормаОбработкиУнОбменXML.ЭлементыФормы.ПанельПараметрыВыгрузки.Страницы.ВыгрузкаВИБПриемник;
	//Иначе
	//	ОсновнаяФормаОбработкиУнОбменXML.ЭлементыФормы.ПанельПараметрыВыгрузки.ТекущаяСтраница = ОсновнаяФормаОбработкиУнОбменXML.ЭлементыФормы.ПанельПараметрыВыгрузки.Страницы.ВыгрузкаВФайл;
	//КонецЕсли
	
	ТекущееВремяНачалаВыгрузки = ТекущаяДата();
	Обработка.ВыполнитьВыгрузку();	
	
	ОчиститьСообщения();
	Сообщить("Начало выгрузки: " + СокрЛП(ТекущееВремяНачалаВыгрузки));
	Сообщить("Окончание выгрузки: " + СокрЛП(ТекущаяДата()));
Показать
105. Светлый ум 509 26.03.20 12:49 Сейчас в теме
Выгрузка и загрузка данных XML 8.3 +
https://infostart.ru/public/1007340/

Отличие от типовой:
Загрузка данных:

Выбор поиска и сопоставления в базе-приемник по:
1) УИДу;
2) Наименованию;
3) Наименованию и Коду.
106. Светлый ум 509 06.04.20 12:09 Сейчас в теме
Универсальный обмен между похожими конфигурациями

https://infostart.ru/public/201607/

- перелопаченный функционал типовой
107. Светлый ум 509 21.04.20 05:26 Сейчас в теме
https://its.1c.ru/db/metod8dev#content:2475:hdoc

ТипЗначения = ТипЗнч(ВыбСчет);
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначения);
Если Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда
    Сообщить("Справочник");
ИначеЕсли Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
    Сообщить("Документ");
КонецЕсли;


Получение имени метаданного по ссылке
108. Светлый ум 509 22.04.20 11:37 Сейчас в теме
Для того что бы установить Настройки, зайдите в конфигуратор 1С 8.х, в меню «Сервис» -> «Параметры», перейдите на закладку «Модули», «Редактирование». В этом окне в группу «Выделение цветом синтаксических конструкций» внести следующие изменения:

1) Вкладка "Тексты" - Отображать пробелы и Табуляции:
пробел: ⋅ табуляция: …
пробел: ` табуляция: …

2) Подсветка всех одноименных идентификаторов

- добавим в настройки редактора («Сервис» - «Параметры» - «Редактирование») возможность задания цвета для синтаксической конструкции типа «Выбранный идентификатор» (см. рисунок).
Выставляем желаемый цвет (например, 255, 255, 153) и сохраняем настройки. Теперь попробуйте выделить в каком-нибудь куске кода идентификатор (имя переменной, название процедуры) и редактор кода тут же выполнит подсветку всех одноименных идентификаторов. Функция особенно полезна при отладке чужого кода.

3) Вставки своего кода с датой:

•Конфигуратор -> «Сервис» -> «Шаблоны текста».

•Конфигуратор -> «Сервис» -> «Параметры» -> «Модули» -> «Редактирование» -> «Автозамена» — установить значение «Включить» или «Отключить»

//{ООО Ромашка <?"", ДатаВремя, "ДФ=dd.MM.yyyy"> Иванов И.И.//KKY: "Создание Номенклатуры" } -->
//

//<-- {УИС}


4) Дружелюбный цвет конфигуратора (Чтоб глаза не уставали)

// Светлая цветовая схема
Brightness contrast colorschemes:
Ключевые слова: D24C15
Константы типа "Число": B68900
Константы типа "Строка": 4CA49C
Константы типа "Дата": 859900
Идентификаторы: 258BD3
Операторы: D42F33
Комментарии: 93A1A1
Препроцессор: D53584
Прочее: 899A33
Фон: FFFBF0
109. Светлый ум 509 29.04.20 06:52 Сейчас в теме
//Получение структуры на сервере для обработки на клиенте по ссылке
Функция ПолучитьСтруктуруРеквизитовСправочника(СправочникСсылка)
	
	ИмяСправочника       = СправочникСсылка.Метаданные().Имя;
	РеквизитыСправочника = Новый Структура();
	Для каждого Рекв Из Метаданные.Справочники[ИмяСправочника].Реквизиты Цикл
		ИмяРеквизита      = Рекв.Имя;
		ЗначениеРеквизита = СправочникСсылка[ИмяРеквизита];
		РеквизитыСправочника.Вставить(ИмяРеквизита, ЗначениеРеквизита);
	КонецЦикла;
	
	Возврат РеквизитыСправочника;
	
КонецФункции
Показать
110. Светлый ум 509 07.05.20 14:33 Сейчас в теме
Проверка на наличие подсистемы:

Если ОбщегоНазначения.ПодсистемаСуществует("***") Тогда
		//Какие-то действия
	КонецЕсли;
111. Светлый ум 509 11.06.20 05:21 Сейчас в теме
Удаление записей независимых регистров сведений с отбором СКД:
Прикрепленные файлы:
Удаление РС - с отбором СКД.txt
113. Светлый ум 509 17.06.20 13:37 Сейчас в теме
(112)Настройки СКД - отчет по подпискам
Прикрепленные файлы:
Настройки.xml
114. Светлый ум 509 19.06.20 12:25 Сейчас в теме
Состав объектов подсистемы:

	// Получаем коллекцию корневых подсистем.
	ВсеПодсистемы = Метаданные.Подсистемы;
	
	// Обходим все корневые и вложенные подсистемы.
	Для каждого ЭлементКоллекцииПодсистем из ВсеПодсистемы Цикл
		//Ограничение только по своим подсистемам.
		//Если СтрНайти(ЭлементКоллекцииПодсистем.Имя,"ХХ_") = 0 Тогда
		//	Продолжить;
		//КонецЕсли;


// Получени состава объектов переданной подсистемы.
Процедура ПолучитьСоставОбъектовПодсистемы(ЭлементКоллекцииПодсистем, табВнешнийИсточник, Родитель)
	ОбъектыМетаданных = ЭлементКоллекцииПодсистем.Состав;
	ЗаполнитьДанныеПодсистем(ЭлементКоллекцииПодсистем, ОбъектыМетаданных, табВнешнийИсточник,  Родитель);
КонецПроцедуры

// Заполнение составом подсистемы таблицы значений.
Процедура ЗаполнитьДанныеПодсистем(Подсистема, КоллекцияОбъектовПодсистемы, табВнешнийИсточник, Родитель)
	Для каждого Значение из КоллекцияОбъектовПодсистемы Цикл
		ИндексЭлемента = СтрНайти(Значение.ПолноеИмя(), ".");
		стрОбъектМетаданных = Лев(Значение.ПолноеИмя(), ИндексЭлемента - 1);
		СтрокаТЗ = табВнешнийИсточник.Добавить();
		СтрокаТЗ.Родитель = Родитель;
		СтрокаТЗ.Подсистема = Подсистема.Имя;
		СтрокаТЗ.ИмяОбъектаМетаданных = стрОбъектМетаданных;
		СтрокаТЗ.ИмяОбъекта = Значение.ПолноеИмя();
		СтрокаТЗ.ПризнакНаличия = Истина;
	КонецЦикла;
КонецПроцедуры
Показать
116. Светлый ум 509 07.07.20 18:34 Сейчас в теме
Как скрыть программно пункт РазрешитьРедактированиеРеквизитовОбъекта // "Разрешить редактирование реквизитов"

ЭтаФорма.Элементы.РазрешитьРедактированиеРеквизитовОбъекта.Видимость = Ложь;


На its пишут что можно управлять только теми элементами командной панели, что создал сам.
117. пользователь 14.07.20 11:13
Сообщение было скрыто модератором.
...
118. Светлый ум 509 20.07.20 09:57 Сейчас в теме
Сохранение дерева - обычные формы
https://forum.infostart.ru/forum9/topic166492/
119. Светлый ум 509 24.07.20 03:54 Сейчас в теме
Загрузка из файла на БСП :

Обработка.ЗагрузкаДанныхИзВнешнихФайлов.Форма.ЗагрузкаДанныхИзФайла
Прикрепленные файлы:
пример - загрузка из ТабДок на БСП.epf
120. Светлый ум 509 14.02.21 13:12 Сейчас в теме
Как программно открыть внешний отчет из "Дополнительных отчетов и обработок" и передать параметры (при помощи БСП)
https://infostart.ru/1c/articles/1027823/
121. Светлый ум 509 10.03.21 07:06 Сейчас в теме
https://infostart.ru/public/319157/
Библиотека универсальных функций и процедур (v 1.3)
122. Светлый ум 509 24.06.21 07:51 Сейчас в теме
low-code, а особенно zero-code - эти концепции переносят сложность из одного места в другое. И это плодит неоптимальные решения, тащащие за собой технический долг, который будет очень трудно уменьшить.

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

Лично наблюдал, когда два человека с франча и эксперт по техвопросам писали правила обмена для сильно модифицированной УТ 11.1 и почти типовой бухни 2.0 целый год, потом овер дохрена времени уходило на поддержку этого г-на с зиро-кодом. Поэтому я очень скептически отношусь к требованиям в вакухах на тему конвертации (2-й еще ладно, а 3-ю толком никто не знает, поддержка ее в наших продуктах даже при почти не меняющихся объектах вызывает первобытный ужас среди большинства разрабов, в итоге переносимость правил трансляции и прочего постоянно отваливается. Я свой механизм сделал кодом - и он не отвалился ни разу, просто дерево, упакованное в XML - написано за два дня, а только создание пакетов XDTO для 3-ки заняло пару месяцев).
123. Светлый ум 509 24.06.21 07:54 Сейчас в теме
Эталонные статьи по планам обмена:

[БСП] Обмен через Конвертацию данных 2.1
https://infostart.ru/1c/articles/1187782/

Стать про обмен порциями через регистр
https://infostart.ru/1c/articles/899200/
124. Светлый ум 509 08.07.21 10:04 Сейчас в теме
Свертка ТЗ запросом, с функциями МИНИМУМ, МАКСИМУМ, КОЛИЧЕСТВО, СРЕДНЕЕ

 Функция СвернутьЗапросом(ТаблицаЗначений, Знач КолонкиГруппировок, Знач КолонкиСуммирования, Ф="СУММА") Экспорт
    
    Ф = ВРег(Ф) + "(";
    Если СтрНайти("СУММА(,МИНИМУМ(,МАКСИМУМ(,КОЛИЧЕСТВО(,СРЕДНЕЕ(", Ф) = 0 Тогда
        Ф = "КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ";
    КонецЕсли;
    
    Запрос = Новый Запрос(СтрШаблон("
    |ВЫБРАТЬ
    |    %1
    |ПОМЕСТИТЬ ВТ Из &ТЗ КАК ТЗ
    |;
    |ВЫБРАТЬ
    |    %2
    |ИЗ ВТ КАК ВТ 
    |СГРУППИРОВАТЬ ПО 
    |    %3",
    КолонкиГруппировок + "," + КолонкиСуммирования, // %1
    КолонкиГруппировок + "," + Ф + СтрЗаменить(КолонкиСуммирования, ",", "), " + Ф) + ")", // %2
    КолонкиГруппировок)); // %3
    
    Запрос.Параметры.Вставить("ТЗ", ТаблицаЗначений);
    
    Возврат Запрос.Выполнить(); //.Выгрузить();
    
КонецФункции
Показать
125. Светлый ум 509 09.07.21 07:15 Сейчас в теме
Сделал функцию более универсальной и оптимизировал код. Обновите публикацию.
Функция ЕстьРоль(ИмяРоли, Пользователь = Неопределено) Экспорт

    Если Пользователь = Неопределено Тогда
        Пользователь = Пользователи.ТекущийПользователь();
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    ГруппыДоступаПользователи.Пользователь КАК Пользователь
                   |ИЗ
                   |    Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли
                   |        ПО ГруппыДоступаПользователи.Ссылка.Профиль = ПрофилиГруппДоступаРоли.Ссылка
                   |ГДЕ
                   |    ПрофилиГруппДоступаРоли.Роль.Имя = &Роль
                   |    И ГруппыДоступаПользователи.Пользователь = &Пользователь
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    ГруппыПользователейСостав.Пользователь
                   |ИЗ
                   |    Справочник.ГруппыПользователей.Состав КАК ГруппыПользователейСостав,
                   |    Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли,
                   |    Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
                   |ГДЕ
                   |    ПрофилиГруппДоступаРоли.Роль.Имя = &Роль
                   |    И ГруппыПользователейСостав.Пользователь = &Пользователь
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    ГруппыВнешнихПользователейСостав.ВнешнийПользователь
                   |ИЗ
                   |    Справочник.ГруппыВнешнихПользователей.Состав КАК ГруппыВнешнихПользователейСостав
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
                   |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли
                   |            ПО ГруппыДоступаПользователи.Ссылка.Профиль = ПрофилиГруппДоступаРоли.Ссылка
                   |        ПО ГруппыВнешнихПользователейСостав.Ссылка = ГруппыДоступаПользователи.Пользователь
                   |ГДЕ
                   |    ПрофилиГруппДоступаРоли.Роль.Имя = &Роль
                   |    И ГруппыВнешнихПользователейСостав.ВнешнийПользователь = &Пользователь";
    
    Запрос.УстановитьПараметр("Пользователь",    Пользователь);
    Запрос.УстановитьПараметр("Роль",            ИмяРоли);
    
    УстановитьПривилегированныйРежим(Истина);
    РезультатЗапроса = Запрос.Выполнить();
    УстановитьПривилегированныйРежим(Ложь);
    
    Возврат Не РезультатЗапроса.Пустой();        
    
КонецФункции
Показать
126. Светлый ум 509 27.07.21 12:30 Сейчас в теме
Работа с навигационными ссылками:

1) ПолучитьНавигационнуюСсылкуИнформационнойБазы (GetInfoBaseURL)

2) ОбщегоНазначения.АдресПубликацииИнформационнойБазыВЛокальнойСети()+"/#"+ПолучитьНавигационнуюСсылку(Документ)

3) ПерейтиПоНавигационнойСсылке(Документ_71);
Документ_71 = "e1cib/data/Документ.ЗакупочнаяПроцедура?ref=80fc20040feaf59011eb7b13e99ec275";
Документ_58 = "e1cib/data/Документ.ЗакупочнаяПроцедура?ref=80f820040feaf59011eb6a003ad36f06";

4) Процедура ПолучитьСсылкуИзНавигационной(НС)
    
    ПерваяТочка = Найти(НС, "e1cib/data/");
    ВтораяТочка = Найти(НС, "?ref=");
    
    ПредставлениеТипа   = Сред(НС, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
    ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
    ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НС, ВтораяТочка + 5));
    Ссылка = ЗначениеИзСтрокиВнутр(ЗначениеСсылки);
    
     КонецПроцедуры   
Показать
127. Светлый ум 509 27.07.21 13:18 Сейчас в теме
УИД = Новый УникальныйИдентификатор();

                НоваяСсылка = Справочники[ИмяМетаданных].ПолучитьСсылку(УИД);

                НовыйЭлемент = Справочники[ИмяМетаданных].СоздатьЭлемент();

                НовыйЭлемент.УстановитьСсылкуНового(НоваяСсылка);
128. Светлый ум 509 28.07.21 05:31 Сейчас в теме
Навигационная ссылка
С появлением версии платформы 1С:Предприятие 8.2 пользователям стала доступна функция передачи ссылок на объекты информационной базы. Теперь пользователь может по электронной почте переслать, например своему коллеге, ссылку на документ, и последний откроет его в пару щелчков. Нам нужно лишь получить ссылку на объект:

Изображение

А пользователь по этой ссылке откроет его уже на своей стороне:

Изображение

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

Реализация
Давайте создадим обработку, которая будет создавать некоторое подобие навигационной ссылки для выбранного объекта в информационной базе, но работать будет в обычном приложении. Основная форма обработки показана на следующем скриншоте:

Изображение

Структура метаданных обработки будет состоять из двух реквизитов и непосредственно основной формы. Реквизита будет два:

1) «ОбъектИБ» с типом «Любая ссылка»

2) «СсылкаНаОбъект» с типом «Строка» длинной 255 символов.

Выбрав ссылку на объект информационной базы пользователь нажимает на кнопку «Получить ссылку». В результате будет сформирована строка ссылки на объект, включающая в себя информацию о типе объекта и его GUID для однозначной идентификации и его последующего открытия. На следующем листинге показан программный код обработчика этой кнопки:

Процедура ПолучитьСсылкуНажатие(Элемент)		 
	Если ЗначениеЗаполнено(ОбъектИБ) Тогда			    
		// Получаем полный путь к метаданным объекта                        
		ТипОбъектаИБ = ОбъектИБ.Метаданные().ПолноеИмя();			    
		// Получаем GUID объекта в информационной базе                        
		GUIDОбъектаИБ = ОбъектИБ.УникальныйИдентификатор();					   
		// Формируем строку ссылки как "Путь метаданных + GUID объекта"                        
		СсылкаНаОбъект = Строка(ТипОбъектаИБ) + "__" + GUIDОбъектаИБ;	    
	Иначе			    
		Сообщить("Нужно выбрать объект информационной базы!", СтатусСообщения.ОченьВажное);	  	
	КонецЕсли;	  	
КонецПроцедуры
Показать


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

Процедура КнопкаВыполнитьНажатие(Кнопка)	   
	// Ищем разделитель информации о типе объекта и его GUID'е            
	Разделитель = Найти(СсылкаНаОбъект, "__");	   
	Если Разделитель 0 Тогда			    
		// Парсим путь к метаданным из текста ссылки                        
		МетаданныеОбъекта = Лев(СсылкаНаОбъект, Найти(СсылкаНаОбъект, "__")-1);			  	// Получаем соответствующий менеджер для типа                        
		Если Найти(МетаданныеОбъекта, "Документ") 0 Тогда
			Менеджер = Документы;			   
		ИначеЕсли Найти(МетаданныеОбъекта, "Справочник") 0 Тогда				   
			Менеджер = Справочники;			    
		ИначеЕсли Найти(МетаданныеОбъекта, "ПланВидовРасчета") 0 Тогда				   		Менеджер = ПланыВидовРасчета;				  
		ИначеЕсли Найти(МетаданныеОбъекта, "ПланВидовХарактеристик") 0 Тогда				 	Менеджер = ПланыВидовХарактеристик;				   
		ИначеЕсли Найти(МетаданныеОбъекта, "ПланСчетов") 0 Тогда				   
			Менеджер = ПланыСчетов;				   
		ИначеЕсли Найти(МетаданныеОбъекта, "БизнесПроцесс") 0 Тогда				   			Менеджер = БизнесПроцессы;				
		ИначеЕсли Найти(МетаданныеОбъекта, "Задача") 0 Тогда				   
			Менеджер = Задачи;				  
		КонецЕсли;			   
		// Парсим имя объекта                        
		Имя = Прав(МетаданныеОбъекта, СтрДлина(МетаданныеОбъекта) - Найти(МетаданныеОбъекта, "."));	  // Получаем GUID из текста ссылки                        
		GUIDОбъекта = Новый УникальныйИдентификатор(СтрЗаменить(СсылкаНаОбъект, МетаданныеОбъекта+"__", ""));			    
		// По GUID'у получаем ссылку на объект и открываем ее                        
		ПолученнаяСсылка = Менеджер[Имя].ПолучитьСсылку(GUIDОбъекта);			    
		ОткрытьЗначение(ПолученнаяСсылка);	    
	КонецЕсли;			 	 
КонецПроцедуры
Показать


Весь смысл команды заключается в парсинге текста ссылки для получения типа объекта и его уникального идентификатора. Затем объект открывается по найденной ссылке.

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

В конечном итоге механизм навигационных ссылок, подобный стандартному в управляемом приложении, мы можем воссоздать и для обычных форм.
129. Светлый ум 509 28.07.21 06:37 Сейчас в теме
НовыйGUID               = Новый УникальныйИдентификатор("e99ec275-7b13-11eb-80fc-20040feaf590");
ДокументСсылка_изGUID    = Документы.ЗакупочнаяПроцедура.ПолучитьСсылку(НовыйGUID);
ПараметрыФормы                = Новый Структура("Ключ", ДокументСсылка_изGUID);
ОткрытьФорму("Документ.ЗакупочнаяПроцедура.Форма.ФормаДокумента", ПараметрыФормы);
ОткрытьЗначение(ДокументСсылка_изGUID);	    
130. Светлый ум 509 28.07.21 08:26 Сейчас в теме
ГУИД_Параметра = "e99ec275-7b13-11eb-80fc-20040feaf590";
ЗаголовокНавигационнойСсылки = "e1cib/data/Документ.ЗакупочнаяПроцедура?ref=";
НавигациооннаяСтрокаОбъекта  = Сред(ГУИД_Параметра,20,4)+ Сред(ГУИД_Параметра,25,12)+ Сред(ГУИД_Параметра,15,4)+ Сред(ГУИД_Параметра,10,4)+ Лев(ГУИД_Параметра,8);
НавигациооннаяСсылккаОбъекта = ЗаголовокНавигационнойСсылки + НавигациооннаяСтрокаОбъекта;
ПерейтиПоНавигационнойСсылке(Документ_71);   
131. Светлый ум 509 14.09.21 07:33 Сейчас в теме
Правила запроса. Выдержки из книги "Настольная книга 1С:Эксперта по технологическим вопросам"
https://infostart.ru/1c/articles/1078667/
132. Светлый ум 509 14.09.21 10:02 Сейчас в теме
My Webpage

Пытаюсь решить следующую задачу: необходимо по планам производства построить таблицу комплектующих по спецификациям из этого плана. Спецификации многоуровневые, может доходить до 20 уровня вложенности. Т.е. необходимо разузлование.
Знаю, как сделать рекурсивным алгоритмом, но сильно не устраивает скорость его работы. Нашел на просторах интернета, что СКД умеет иерархию при связи набора с самим собой

ВЫБРАТЬ
    Т.Ссылка КАК СпецификацияРодитель,
    Т.Спецификация КАК Спецификация,
    Т.Номенклатура,
    Т.Количество * &КоличествоСпецификации КАК Количество,
    Т.Количество КАК КоличествоНормативное,
    &КоличествоСпецификации КАК КоличествоСпецификации
ИЗ
    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК Т
ГДЕ
    Т.Ссылка В(&СписокСпецификаций)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЗНАЧЕНИЕ(Справочник.СпецификацииНоменклатуры.ПустаяСсылка),
    &Спецификация,
    &Спецификация,
    1,
    1,
    1
Показать

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

-------------------------------------------
заработало (©Кот Матроскин). Сделал вложенный запрос и второй набор не понадобился. Работает как надо. Спасибо за идею.

https://start1c.blogspot.com/2017/01/blog-post.html

https://www.youtube.com/watch?v=ZCfE2a7DpU8
134. Светлый ум 509 16.09.21 13:13 Сейчас в теме
135. Светлый ум 509 21.09.21 10:40 Сейчас в теме
тут проблема в разрешении экрана. Открыл я твою форму на такси в 1С:Предприятие 8.3 (8.3.7.2008).
Так вот когда ты устновишь минимальное разрешение тебе проверка выдает следующее
Ошибка генерации элемента формы: "COMВариантРаботыИнформационнойБазы" - Ширина меньше допустимой
Ошибка генерации элемента формы: "ПодключенияВариант" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMТипАутентификации" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMИмяПользователя" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMИмяПользователя - Заголовок" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMПарольПользователя" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMГруппаПользовательПароль" - Ширина меньше допустимой
Ошибка генерации элемента формы: "ПроверитьПодключениеCOM" - Ширина меньше допустимой


Так что как и говорил надо что-то делать в элементами.
137. Светлый ум 509 21.12.21 08:22 Сейчас в теме
Как в запросе, в качестве источника данных, использовать таблицу значений?
Это можно сделать с помощью временных таблиц:

 // Сначала помещаем ТЗ во временную таблицу
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ ИЗ &ТЗ КАК ТЗ";
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Запрос.Выполнить();
// Теперь ТЗ можно использовать в запросе:
Запрос.Текст = "
|ВЫБРАТЬ
|   ТЗ.Номенклатура,
|   Остатки.КоличествоОстаток
|ИЗ
|   ТЗ
|   ЛЕВОЕ СОЕДИНЕНИЕ
|      РегистрНакопления.ТоварыНаСкладах.Остатки() КАК Остатки
|   ПО
|      ТЗ.Номенклатура=Остатки.Номенклатура";

Выборка = Запрос.Выполнить().Выбрать();   
Показать



Если при использовании в запросе таблицы значений, возникает ошибка: «Тип не может быть выбран в запросе», то нужно явно указать Тип значения колонок ТЗ!
Т.е. если мы используем таблицу значений, так же в свою очередь выгруженную из результата запроса или из табличной части документа например - то такой проблемы не возникает, т.к. в таком случае колонки будут типизированными. А если мы сами создаем таблицу значений, то нужно явно указать тип для каждой колонки:

 ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
138. Светлый ум 509 21.12.21 09:51 Сейчас в теме
Сравнение таблиц

https://infostart.ru/public/326983/
Функция РазницаТаблицЗначений(Таблица0, Таблица1, Измерения) Экспорт
    
    ВсеКолонки = "";
    Для Каждого Колонка Из Таблица0.Колонки Цикл 
        ВсеКолонки = ВсеКолонки + ", " + Колонка.Имя
    КонецЦикла;
    ВсеКолонки = Сред(ВсеКолонки, 2);
    
    Таблица = Таблица1.Скопировать();    
    
    Таблица.Колонки.Добавить("Знак", Новый ОписаниеТипов("Число"));
    
    Таблица.ЗаполнитьЗначения(1, "Знак");
    
    Для Каждого Строка Из Таблица0 Цикл ЗаполнитьЗначенияСвойств(Таблица.Добавить(), Строка) КонецЦикла;
    
    Таблица.Колонки.Добавить("Счёт");
    Таблица.ЗаполнитьЗначения(1, "Счёт");
    
    Таблица.Свернуть(ВсеКолонки, "Знак, Счёт");
    
    Ответ = Таблица.Скопировать(Новый Структура("Счёт", 1), ВсеКолонки + ", Знак");
    
    Ответ.Сортировать(Измерения);
    
    Возврат Ответ
    
КонецФункции
Показать
139. Светлый ум 509 15.04.22 10:48 Сейчас в теме
Получить / записать дополнительные реквизиты программно
16 СЕНТЯБРЯ, 2017 ADMIN ОДИН КОММЕНТАРИЙ
Дополнительные реквизиты в 1с 8 представляют из себя специальную табличную часть у некоторых документов и справочников. В ней хранятся дополнительные данные, касающиеся данного объекта метаданных. Данный механизм реализован только в конфигурация работающих на управляемом приложении. По своему назначению дополнительные реквизиты напоминают дополнительные сведения, разница в том, что доп. сведения хранятся в отдельном регистре, это их плюс, но зато доп. реквизиты автоматически выводятся на форму объекта. В этой статье будет рассказано, как получать и записывать дополнительные реквизиты программно.

Получить дополнительные реквизиты программно
Функция получает значение дополнительного реквизита объекта по ссылке и свойству.

Ссылка. Тип: Любая ссылка. Ссылка на искомый объект;
Свойство. Тип: План видов характеристик ДополнительныеРеквизитыИСведения. Дополнительное свойство.
Код:

Функция ПолучитьЗначениеДопРеквизита(Ссылка, Свойство) Экспорт

    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Свойство",Свойство);
    Массив = Ссылка.ДополнительныеРеквизиты.НайтиСтроки(ПараметрыОтбора);

    Если Массив.Количество() = 0 Тогда
        Возврат Неопределено;
    Иначе
        Возврат Массив[0].Значение;
    КонецЕсли;

КонецФункции
Показать


Записать дополнительные реквизиты программно
Функция записывает значение доп. реквизита объекта по ссылке и свойству.

Ссылка. Тип: Любая ссылка. Ссылка на искомый объект;
Свойство. Тип: План видов характеристик ДополнительныеРеквизитыИСведения. Дополнительное свойство;
Значение. Тип: заданный для данного свойства.

Функция ЗаписатьЗначениеДопРеквизита(Ссылка, Свойство, Значение)
	
    Попытка
        ОбъектСсылки = Ссылка.ПолучитьОбъект();
		
	ПараметрыОтбора = Новый Структура;
	ПараметрыОтбора.Вставить("Свойство",Свойство);
	Массив = ОбъектСсылки.ДополнительныеРеквизиты.НайтиСтроки(ПараметрыОтбора);
		
	Если Массив.Количество() = 0 Тогда
            НовоеСвойство = ОбъектСсылки.ДополнительныеРеквизиты.Добавить();
	    НовоеСвойство.Свойство = Свойство;
	    НовоеСвойство.Значение = Значение;
	Иначе
	    Массив[0].Значение = Значение;
	КонецЕсли;	
	
	ОбъектСсылки.Записать();	
    Исключение
	Возврат Ложь;
    КонецПопытки
	
КонецФункции
Показать
141. Светлый ум 509 08.11.22 05:44 Сейчас в теме
Время всех целевых показателей согласовывалось с заказчиком (если заказчик согласовал, то считается, что такое время комфортное для работы пользователей) и основывалось на аналогичных операциях в УПП.

Для РТиУ:
Открытие формы нового - 2 сек.
Открытие формы существующего - 1.5 сек.
Открытие формы подбора номенклатуры - 2 сек.
Печать ТОРГ-12 - 1.5 сек.
Проведение - 8.5 сек.

Для заказа клиента:
Открытие формы нового - 1 сек.
Открытие формы существующего - 1,5 сек.
Открытие формы подбора номенклатуры - 2 сек.
Печать - 2 сек.
Проведение - 1 сек.
142. Светлый ум 509 16.12.22 14:13 Сейчас в теме
143. Светлый ум 509 18.12.22 23:02 Сейчас в теме
144. Светлый ум 509 21.01.23 13:17 Сейчас в теме
Пример работы с вложениями электронных писем для списков документов:

//KKY - Добавляем дату отправки электронного письма
	//ДанныеСтроки.ДатаОтправленияПисьма = ТекущаяДата();
	
	//Заказ покупателя № 8 от 16 марта 2021 г
	
	Номердокумента            = ОбщегоНазначения.ПолучитьНомерНаПечать(ДанныеСтроки.Ссылка);
	ДатаДокументаДень         = Формат(ДанныеСтроки.Ссылка.Дата, "ДФ=д");
	ДатаДокументаМесяц        = Сред(Формат(ДанныеСтроки.Ссылка.Дата, "ДФ=ddMMMM"),3);
	ДатаДокументаГод          = Формат(ДанныеСтроки.Ссылка.Дата, "ДФ=гггг");
	ФорматнаяСтрокаДляЗапроса = "Заказ покупателя № " + Номердокумента + " от " + ДатаДокументаДень + " " + ДатаДокументаМесяц + " " + ДатаДокументаГод + " г"; 
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ первые 1
		|	ВложенияЭлектронныхПисем.Наименование КАК Наименование,
		|	ЭлектронноеПисьмо.ДатаОтправления
		|ИЗ
		|	Справочник.ВложенияЭлектронныхПисем КАК ВложенияЭлектронныхПисем
		|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмо КАК ЭлектронноеПисьмо
		|		ПО ВложенияЭлектронныхПисем.Объект = ЭлектронноеПисьмо.Ссылка
		|ГДЕ
		|	ВложенияЭлектронныхПисем.Наименование ПОДОБНО &ФорматнаяСтрокаДокумента";
	
	Запрос.УстановитьПараметр("ФорматнаяСтрокаДокумента", "%" + ФорматнаяСтрокаДляЗапроса + "%");
	ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
	ВыборкаДетальныеЗаписи.Следующий();
	Если ВыборкаДетальныеЗаписи.Количество()>0 Тогда
		ОформлениеСтроки.Ячейки.ДатаОтправленияПисьма.УстановитьТекст(Формат(ВыборкаДетальныеЗаписи.ДатаОтправления, "ДЛФ=Д"));	
	КонецЕсли;
Показать
145. Светлый ум 509 21.01.23 13:19 Сейчас в теме
Разбор хранилища вложения:

// Вложения
                            Запрос = Новый Запрос;
                            
                            Запрос.УстановитьПараметр("ВыбОбъект", Письмо);
                            Запрос.УстановитьПараметр("ПустаяСтрока", "");
                            
                            Запрос.Текст =
                            "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                            |    ВложенияЭлектронныхПисем.Ссылка КАК Ссылка,
                            |    ВложенияЭлектронныхПисем.Наименование КАК Наименование,
                            |    ВложенияЭлектронныхПисем.ИмяФайла КАК ИмяФайла,
                            |    ВложенияЭлектронныхПисем.Хранилище КАК ХранилищеЗначения
                            |ИЗ
                            |    Справочник.ВложенияЭлектронныхПисем КАК ВложенияЭлектронныхПисем
                            |ГДЕ
                            |    ВложенияЭлектронныхПисем.Объект = &ВыбОбъект
                            |    И ВложенияЭлектронныхПисем.ИДФайлаПочтовогоПисьма = &ПустаяСтрока";
                            
                            Выборка = Запрос.Выполнить().Выбрать();
                            Пока Выборка.Следующий() Цикл
                                ИмяФайла = "";
                                Если НЕ ПустаяСтрока(Выборка.ИмяФайла) Тогда
                                    ИмяФайла = Выборка.ИмяФайла;
                                ИначеЕсли НЕ ПустаяСтрока(Выборка.Наименование) Тогда
                                    ИмяФайла = Выборка.Наименование;
                                КонецЕсли;
                                ДвоичныеДанные = Выборка.ХранилищеЗначения.Получить();
                                Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
                                    ПочтовоеСообщение.Вложения.Добавить(Выборка.ХранилищеЗначения.Получить(), ИмяФайла);
                                КонецЕсли; 
                            КонецЦикла;
Показать
146. Светлый ум 509 27.01.23 06:54 Сейчас в теме
Конкатенация в группировке запроса

минимальный пример если кому интересно
выражение в СКД: СоединитьСтроки(Комментарий, ",")

Получение ТЗ из СКД:

ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
    ОСКД = ОбъектОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    НастройкиОСКД = ОСКД.НастройкиПоУмолчанию;
    ПараметрыДанныхОСКД = НастройкиОСКД.ПараметрыДанных.Элементы;
    Параметр = ПараметрыДанныхОСКД.Найти("Сумма");
    Параметр.Значение = 1;
    КомпоновщикМакетаОСКД = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, НастройкиОСКД,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиОСКД.Инициализировать(Макет);
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ТЗ = Новый ТаблицаЗначений;
    ПроцессорВывода.УстановитьОбъект(ТЗ);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиОСКД);
Показать
147. Светлый ум 509 01.02.23 05:24 Сейчас в теме
результат запроса в структуру

[1C-CODE]Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
РезультатыЗапроса = Запрос.Выполнить().Выгрузить();

Для Каждого ДокументДляПечати Из РезультатыЗапроса Цикл

ДанныеПечати = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(ДокументДляПечати);
ДанныеПечати.Вставить("ФИОРуководителяСокращенное", Строка(ДанныеПечати.Руководитель));
ДанныеПечати.Вставить("ФИОРуководителяСклоняемое", Строка(ДанныеПечати.Руководитель));
ДанныеПечати.Вставить("ДатаНачала", Формат(ДанныеПечати.ДатаНачала, "ДЛФ=DD"));
148. Светлый ум 509 08.02.23 12:49 Сейчас в теме
полученная область макета - определение ее координаты в табличном документе

    для й=1 по 10 цикл
        Обл.Параметры.Пар1 = й;
        Обл.Параметры.пар2 = 10-й;
       ВыведеннаяОбласть = ТД.Вывести(Обл);
        Сообщить("Я вывелась тут: R" + (ВыведеннаяОбласть.Верх) + "C"+(ВыведеннаяОбласть.Лево+1));
    КонецЦикла;
149. Светлый ум 509 15.02.23 10:21 Сейчас в теме
ТОС - теория управления проектами - графы курса
Прикрепленные файлы:
ТОС - теория управления проектами - графы курса.txt
150. Светлый ум 509 17.02.23 12:41 Сейчас в теме
затолкал в шаблон текст формирования СКД и подставлять на CTRL+Q в нужное место, пользы от этих знаний мало.

СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ВнешнийНаборДанных1",ВнешнийНаборДанных1);
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
Результат = ЭлементыФормы.Результат;
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Показать
151. ivan453 26.02.23 17:45 Сейчас в теме
Процедуры для переходных релизов с 2.0 на 3.0 (с обычных на управляемые):

https://forum.mista.ru/topic.php?id=871139

Функция СтрСравнить(Перем1, Перем2) Экспорт
    
    СравнениеЗначений = Новый СравнениеЗначений;
    
    Результат = СравнениеЗначений.Сравнить(Перем1, Перем2);
    
    Возврат Результат;
    
КонецФункции

Функция СтрРазделить(Текст, Разделитель, ВключатьПустые = Ложь) Экспорт

    Результат = РазложитьСтрокуВМассивПодстрокБСП(Текст, Разделитель);    
    
    Возврат Результат;
    
КонецФункции    

// Функция "расщепляет" строку на подстроки, используя заданный
//        разделитель. Разделитель может иметь любую длину.
//        Если в качестве разделителя задан пробел, рядом стоящие пробелы
//        считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
//        игнорируются.
//        Например,
//        РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов,
//        три из которых - пустые строки, а
//        РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов
//
//    Параметры:
//        Стр -             строка, которую необходимо разложить на подстроки.
//                        Параметр передается по значению.
//        Разделитель -     строка-разделитель, по умолчанию - запятая.
//
//
//    Возвращаемое значение:
//        массив значений, элементы которого - подстроки
//
Функция РазложитьСтрокуВМассивПодстрокБСП(Знач Стр, Разделитель = ",") Экспорт
    
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = СокрЛ(Сред(Стр,Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = Сред(Стр,Поз+ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
    
КонецФункции // глРазложить

Функция СтрСоединить(МассивСтрок, Разделитель = "") Экспорт
    
    Результат = "";
    
    Для Каждого ЭлементМассива Из МассивСтрок Цикл
        
        Результат = Результат + ЭлементМассива + Разделитель;    
        
    КонецЦикла;
    
    ОтрезатьСимволов = СтрДлина(Разделитель);
    
    ОставитьСимволов = СтрДлина(Результат) - ОтрезатьСимволов;
    
    Результат = Лев(Результат, ОставитьСимволов);
    
    Возврат Результат;
    
КонецФункции

Функция СтрНачинаетсяС(НачалоСтроки, СтрокаПоиска) Экспорт
    
    КолВоСимволов = СтрДлина(СтрокаПоиска);    
    
    КолВоСимволовНачалоСтроки = СтрДлина(НачалоСтроки);
    
    Если КолВоСимволов = 0 ИЛИ КолВоСимволовНачалоСтроки = 0 Тогда
        
        Возврат Ложь;
        
    КонецЕсли;
    
    Если Лев(НачалоСтроки, КолВоСимволов) = СтрокаПоиска Тогда
        
        Результат = Истина;
        
    Иначе
        
        Результат = Ложь;
        
    КонецЕсли;
    
    Возврат Результат;
    
КонецФункции

Функция СтрНайти(Строка, ПодстрокаПоиска, НаправлениеПоиска = Неопределено, НачальнаяПозиция = Неопределено, НомерВхождения = 1) Экспорт
    // НаправлениеПоиска: СКонца,СНачала. По умолчанию: СНачала
    
    Если Строка = "" и ПодстрокаПоиска = "" Тогда
        // чтобы отрабатывало как в платформе
        Если НаправлениеПоиска = "СКонца" Тогда
            Если НомерВхождения = 1 Тогда
                Возврат 1;
            Иначе
                Возврат 0;
            КонецЕсли;
        Иначе
            Возврат мин(НомерВхождения, ?(НачальнаяПозиция=Неопределено, 1, НачальнаяПозиция));
        КонецЕсли;
    КонецЕсли;
    
    Если НачальнаяПозиция = Неопределено Тогда
        Если НаправлениеПоиска = "СКонца" Тогда
            лНачальнаяПозиция = СтрДлина(Строка);
        Иначе
            лНачальнаяПозиция = 1;
        КонецЕсли;
    Иначе
        лНачальнаяПозиция = НачальнаяПозиция;
    КонецЕсли;
    
    Если НаправлениеПоиска = "СКонца" Тогда
        лСтрока = "";
        Для сч = 1 По СтрДлина(Строка) Цикл
            лСтрока = Сред(Строка, сч, 1) + лСтрока;
        КонецЦикла;
        лПодстрокаПоиска = "";
        Для сч = 1 По СтрДлина(ПодстрокаПоиска) Цикл
            лПодстрокаПоиска = Сред(ПодстрокаПоиска, сч, 1) + лПодстрокаПоиска;
        КонецЦикла;
        лНачальнаяПозиция = макс(1, СтрДлина(Строка)-лНачальнаяПозиция-СтрДлина(ПодстрокаПоиска)+2);
    Иначе
        лСтрока = Строка;
        лПодстрокаПоиска = ПодстрокаПоиска;
        лНачальнаяПозиция = лНачальнаяПозиция;
    КонецЕсли;
    
    лНомерВхождения = 0;
    Результат = Найти(Сред(лСтрока, лНачальнаяПозиция), лПодстрокаПоиска);
    Пока Результат Цикл
        лНачальнаяПозиция = Результат + лНачальнаяПозиция + СтрДлина(ПодстрокаПоиска)-1;
        лНомерВхождения = лНомерВхождения + 1;
        Если лНомерВхождения = НомерВхождения Тогда
            Прервать;
        КонецЕсли;
        Результат = Найти(Сред(лСтрока, лНачальнаяПозиция), лПодстрокаПоиска);
    КонецЦикла;
    
    Если лНомерВхождения = НомерВхождения Тогда
        Результат = лНачальнаяПозиция - СтрДлина(ПодстрокаПоиска);
    Иначе
        Результат = 0;
    КонецЕсли;
        
    Если НаправлениеПоиска = "СКонца" И Результат<>0 Тогда
        Результат = СтрДлина(Строка) - Результат - СтрДлина(ПодстрокаПоиска) + 2;
    КонецЕсли;
    
    Возврат Результат;
    
КонецФункции
Показать
152. ivan453 26.02.23 18:49 Сейчас в теме
УТ 10, второй блок процедур для воскрешения старых модулей

/////////////////////////////////////////////////////////////////////////////////////////
//
//  Функции обратной совместимости для эмуляции новых возможностей платформы
//  Удалить лишние при необходимости
//
////////////////////////////////////////////////////////////­/////////////////////////////

Функция СтрНайти(Строка,
    ПодстрокаПоиска,
    НаправлениеПоиска = Неопределено,
    НачальнаяПозиция = 1,
    НомерВхождения = 1) Экспорт
    
    Если НаправлениеПоиска = "СКонца" Тогда
        ВызватьИсключение НСтр("ru = 'Требуется доработать функцию ""СтрНайти"" в общем модуле ""ИнтеграцияЕГАИСКлиентСерверГлобальный"":
                                |Не поддерживается поиск с конца'");
    КонецЕсли;
    
    Если ПодстрокаПоиска = "" Тогда
        Возврат 1;
    КонецЕсли;
    
    Если НачальнаяПозиция > 1 Тогда
        Возврат НачальнаяПозиция - 1 + СтрНайти(Сред(Строка, НачальнаяПозиция), ПодстрокаПоиска, НаправлениеПоиска,,НомерВхождения);
    КонецЕсли;
    
    Если НомерВхождения > 1 Тогда
        Вхождение1 = Найти(Строка, ПодстрокаПоиска);
        Если Вхождение1 > 0 Тогда
            Возврат Вхождение1 + СтрНайти(Сред(Строка,Вхождение1 +1),ПодстрокаПоиска,НаправлениеПоиска,,НомерВхождения - 1);
        КонецЕсли;
    КонецЕсли;
    
    Возврат Найти(Строка, ПодстрокаПоиска);
    
КонецФункции

Функция СтрНачинаетсяС(Строка, ПодстрокаПоиска) Экспорт
    
    Возврат (Найти(Строка, ПодстрокаПоиска)=1);
    
КонецФункции

Функция СтрЗаканчиваетсяНа(Строка, ПодстрокаПоиска) Экспорт
    
    Возврат Прав(Строка, СтрДлина(ПодстрокаПоиска)) = ПодстрокаПоиска;
    
КонецФункции

Функция СтрСоединить(МассивСтрок, Разделитель = "") Экспорт
    
    Возврат СтроковыеФункцииКлиентСервер.ПолучитьСтрокуИзМассиваПодстрок(МассивСтрок, Разделитель);
    
КонецФункции

Функция СтрРазделить(Строка, Разделитель, ВключатьПустые = Ложь) Экспорт

    Возврат СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, ВключатьПустые);

КонецФункции // СтрРазделить()

Функция СтрШаблон(Знач СтрокаПодстановки,
    Параметр1, Параметр2 = Неопределено, Параметр3 = Неопределено,
    Параметр4 = Неопределено, Параметр5 = Неопределено, Параметр6 = Неопределено,
    Параметр7 = Неопределено, Параметр8 = Неопределено, Параметр9 = Неопределено) Экспорт
    
    Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаПодстановки,
        Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
    
КонецФункции

Функция ФорматированнаяСтрока(Содержимое,
    Шрифт = Неопределено,
    ЦветТекста = Неопределено,
    ЦветФона = Неопределено,
    Ссылка = Неопределено) Экспорт

    Описание = ИнтеграцияЕГАИСУТКлиентСервер.ОписаниеФорматированнойСтроки();
    Описание.Заголовок  = Содержимое;
    Описание.Шрифт      = Шрифт;
    Описание.ЦветТекста = ЦветТекста;
    Описание.ЦветФона   = ЦветФона;
    Описание.Ссылка     = Ссылка;
    
    Возврат Описание;

КонецФункции // ФорматированнаяСтрока()
Показать
153. Светлый ум 509 28.02.23 10:26 Сейчас в теме
(151) Потребность в этих процедурах была при обновлении после down grade с Корп до базовой
156. Светлый ум 509 24.03.23 06:31 Сейчас в теме
// ДЕКАДУ нельзя вывести через формат, но можно так:
Строка(Цел(День(Дата('20020820153309')) / 10) + 1)+" декада" = 2 декада
157. Светлый ум 509 17.04.23 11:45 Сейчас в теме
Курс по сертификатам:

Всего: 164 учебных часов

Мои сертификаты
Сортировать по: Дате | Важности
06.02.2017 1С:Специалист. Управление производственным предприятием 8 CS22645
14.10.2010 1С:Специалист по "Управление торговлей 8" CS81382
04.06.2021 1С:Руководитель проекта РП966
04.06.2021 1С:Руководитель проекта (редакция 2) РП966
22.03.2021 1С:Руководитель проекта (2016) РП33622
29.03.2021 1С:Консалтинг.Основы менеджмента ОМ3207
24.02.2021 1С:Профессионал. Управление холдингом 8 (ред. 3.0) ПУХ802400
07.08.2018 1С:Профессионал. ERP Управление предприятием 2 ПЕРП80013988
03.04.2018 1С:Профессионал. Документооборот 8 ПДО809564
15.11.2011 1С:Профессионал. Управление производственным предприятием 8 ПУПП80015689
23.11.2010 1С:Профессионал. Консолидация 8 ПК82142
26.09.2008 1С:Профессионал. Управление торговлей 8 ПУТ88017164

Мои удостоверения (пройденные курсы)
02.12.2022 Казначейство и управление закупками в программе "1С: Управление холдингом 8" №DK109666
28.05.2021 Реальная автоматизация: технология допродаж решений для бизнеса по существующей базе клиентов №DK21052810
03.03.2021 Бюджетирование в прикладном решении "1С:ERP Управление предприятием 2" №DK37791
21.12.2016 Управленческий учет затрат, финансовый результат в прикладном решении "1С:ERP Управление предприятием 2" №DKUPERP16122102
16.12.2016 Управление затратами в "1С:Управление производственным предприятием 8" №DKUZ8016121601
17.10.2016 Концепция прикладного решения "1С:ERP Управление предприятием 2" №DK15605
03.11.2010 1С:Консолидация 8 №DKOBZK10110309
158. Светлый ум 509 19.04.23 10:52 Сейчас в теме
Сбор требований. Курс по управлению проектами, часть 7
https://infostart.ru/1c/articles/870848/
159. Светлый ум 509 24.04.23 21:39 Сейчас в теме
160. Светлый ум 509 02.05.23 10:03 Сейчас в теме
// Добавлена проверка на статус ВходВПрограмму
// из ХранилищеЗначенийОбъекта (Хранилище Значений Объекта)
// Производим чтение структуры и проверяем на условие истина(булево)
СписокВыбрПольз = Параметры . ПользователиСБыстрымДоступом ;
Запрос = Новый Запрос ( «ВЫБРАТЬ
|Ссылка ИЗ Справочник.Пользователи
| ГДЕ НЕ ПометкаУдаления
| И НЕ Недействителен
| И НЕ Служебный» );

Выборка = Запрос . Выполнить (). Выбрать ();
Пока Выборка . Следующий () Цикл
Если СписокВыбрПольз . НайтиПоЗначению ( Выборка . Ссылка ) = Неопределено Тогда
ПользовательОбъект = Выборка . Ссылка . Получитьобъект ();
ХранилищеЗн = ПользовательОбъект . СвойстваПользователяИБ ;
ХранилищеЗнПолучить = ХранилищеЗн . Получить ();
Если НЕ ХранилищеЗнПолучить = Неопределено
И ХранилищеЗнПолучить . ВходВПрограммуРазрешен Тогда
ВсеЮзеры . Добавить (). Пользователь = Выборка . Ссылка ;
КонецЕсли;
Иначе
ПользовательОбъект = Выборка . Ссылка . Получитьобъект ();
ХранилищеЗн = ПользовательОбъект . СвойстваПользователяИБ ;
ХранилищеЗнПолучить = ХранилищеЗн . Получить ();
Если НЕ ХранилищеЗнПолучить = Неопределено
И ХранилищеЗнПолучить . ВходВПрограммуРазрешен Тогда
СписокЮзеров . Добавить (). Пользователь = Выборка . Ссылка ;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Показать
161. Светлый ум 509 05.06.23 06:15 Сейчас в теме
http://old.its22.ru/zaprosi-1s-8
платформа для обучения запросам
162. ivan453 12.06.23 19:11 Сейчас в теме
В конфигурации УТ11 документа «Поступление доп.расходов», в отличии от УТ10.3.
Принципы распределения затрат совершенно иные.
Существует регламентный документ "Распределение расходов на себестоимость товаров",
которым можно вручную добавить расходы, которые будут распределены на себестоимость товаров.

(Небольшая цитата из справки к конфигурации.)
< Как заполнить в документе информацию о расходах , которые еще не распределены на себестоимость товаров?

А)В панели действий табличной части документа "Распределение расходов на себестоимость товаров"
нажмите на кнопку "Заполнить по остаткам".

Б)Табличная часть документа будет заполнена списком транспортно-заготовительных
расходов (расходов, которые должны распределяться на себестоимость товаров).

В)Список заполняется остатками транспортно-заготовительных расходов, отраженных в том месяце, к которому относится дата формирования документа. Оприходование транспортно-заготовительных расходов отражается документом "Поступление товаров и услуг" как поступление услуг, по статье расходов с вариантом распределения "На себестоимость товаров".
**При оформлении документа поступления пользователь может указать аналитику расходов (конкретный склад, заказ поставщику, позиция номенклатуры). При автоматическом заполнении документа аналитика расходов заполняется в соответствующем поле табличной части документа. Если необходимо изменить тип аналитики (например, распределять расходы не по заказам, а по складу), то необходимо указать другую статью расходов. >

Кроме данного док-та есть документ "Расчет себестоимости товаров".

< При проведении документа может быть рассчитана предварительная или фактическая себестоимость поступлений и списаний товаров.

- Предварительный расчет себестоимости предназначен для предварительной оценки стоимости товаров для оценки данных о стоимости товаров в оперативном режиме. При этом рассчитывается средняя стоимость товаров.

Это позволяет получить быструю оценку данных в таких отчетах, как например "Выручка и себестоимость товаров".

- Фактический расчет себестоимости производится в конце месяца. Фактическая себестоимость рассчитывается в соответствии с тем методом оценки стоимости товаров, который задан для организации торгового предприятия (средняя за месяц или ФИФО).

В фактическую себестоимость товаров включаются также транспортно-заготовительные расходы, распределенные документом "Распределение расходов на себестоимость товаров". После фактического расчета данные предварительного расчета корректируются.

После фактического расчета себестоимости можно произвести оценку финансовой деятельности торгового предприятия.
** Себестоимость товаров учитывается с детализацией: организация, склад, номенклатура, характеристика номенклатуры. Расчет себестоимости выполняется отдельно для каждой организации. >
163. ivan453 13.06.23 08:37 Сейчас в теме
(162)

https://infostart.ru/1c/articles/1815445/

Дополнительные расходы при приобретении товаров в 1С:Управление торговлей 11.5

более актуальная инструкция
164. Светлый ум 509 02.08.23 07:11 Сейчас в теме
1991 - версии 3.0, 4.0, 5.0 под DOS. В 5.0 принцип отражения хозяйственных операций “документами”,
вводится понятие “печатная форма”.
Появился первый вариант встроенного языка, который использовался для редактирования проводок в системе.
1995 - версия 6.0. Программа для ОС Windows 3.1.
1998 - версия 7.0 В 1С предприятии появилась совместимость с MS SQL.
1999 - версия 7.7. Появилось управление распределенными ИБ, web-расширение 2.0. Разделение на режимы работы (предприятие, конфигуратор, отладчик, монитор)
2002 - 8.0 Улучшенная производительность.
Среди новшеств в 8 – уникальный язык запросов, система компоновки данных и многое другое.
Позже была версия 8.1
2004 - версия 8.2 тонкий клиент, веб-приложение. Стабильная работа на узких каналах связи, “Внешние источники данных”(прямое подключения к сторонним источникам: базам sql, dbf, excel и тд).
Выпущена УПП 1.0 - первая конфигурация, целенаправленно разработанная для промышленных предприятий.
2012 - Выпущена ознакомительная версия 1С-ERP.
2013 - версия 8.3 Полноценный функционал облачных технологий и работа в Linux. Переработана клиент-серверная архитектура. Появление мобильной платформы.
Выход финальной версии 1C:ERP.
165. Светлый ум 509 02.08.23 07:32 Сейчас в теме
Генерация батника в 1С

Процедура ВыполнитьОперациюНаКлиенте(ПараметрДляВыполнения) Экспорт

    ИмяПользователя = "";
    ПарольПользователя = "";
    ПутьКВнешнейОбработке = "c:/temp/Автозапуск.epf";
    
    Кавычка = """";

    КаталогBIN = КаталогПрограммы();
    
    ПутьККонфигурации = СтрокаСоединенияИнформационнойБазы();
    ПутьККонфигурации = СтрЗаменить(ПутьККонфигурации, Кавычка, Кавычка + Кавычка);
    
    СтрокаЗапуска = Кавычка + КаталогBIN + "1cv8.exe" + Кавычка + " ENTERPRISE"
        + " /IBConnectionString " + Кавычка + ПутьККонфигурации + Кавычка
        + " /N "                  + Кавычка + ИмяПользователя + Кавычка
        + " /P "                  + Кавычка + ПарольПользователя + Кавычка
        + " /Execute  "           + Кавычка + ПутьКВнешнейОбработке + Кавычка
        + " /C  "                 + Кавычка + ПараметрДляВыполнения + Кавычка;

    ЗапуститьПриложение(СтрокаЗапуска);    

КонецПроцедуры
Показать
166. Светлый ум 509 04.08.23 07:12 Сейчас в теме
Пометка справочников и удаление неугодных

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	СписокСправочников = Новый СписокЗначений;
	//СписокСправочников.Добавить("ДоговорыКонтрагентов"); // 231 - штука интеракивно удалена
	//СписокСправочников.Добавить("ЕдиницИзмерения");
	СписокСправочников.Добавить("Номенклатура");
	//СписокСправочников.Добавить("Контрагенты");
	//СписокСправочников.Добавить("Склады");
	
	Для Каждого ТекСпр Из СписокСправочников Цикл
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	" + ТекСпр + ".Ссылка
		|ИЗ
		//|    Документ." + лТипДокумента + " КАК Документ
		|	Справочник." + ТекСпр + "  КАК " + ТекСпр +	" ГДЕ " + ТекСпр + ".ПометкаУдаления = &ПометкаУдаления;";	
		Запрос.УстановитьПараметр("ПометкаУдаления", Истина);	
		РезультатЗапроса = Запрос.Выполнить();	
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		сч   =0;
		сч_э =0;
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			
			АнализируемыйСправочник = ВыборкаДетальныеЗаписи.Ссылка;
			СписокСсылок = Новый Массив();
			СписокСсылок.Добавить(АнализируемыйСправочник);
			ТабСсылок    = НайтиПоСсылкам(СписокСсылок);
			
			//Для Каждого Ссылка из ТабСсылок Цикл  //	Сообщить  //КонецЦикла;
			Если ТабСсылок.Количество()=0 Тогда 
				
				ОбъектНаРедактирование = АнализируемыйСправочник.ПолучитьОбъект();
				ОбъектНаРедактирование.Наименование = ОбъектНаРедактирование.Наименование + "_НеИмеетСсылок";
				ОбъектНаРедактирование.Записать();
				сч = сч+1;
				
			КонецЕсли;
			
			сч_э = сч_э + 1;	
		КонецЦикла;
		
		Сообщить(сч);
	КонецЦикла;

КонецПроцедуры

Процедура ОсновныеДействияФормыДействие(Кнопка)
	
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Номенклатура.Ссылка,
	|	Номенклатура.Наименование
	|ИЗ
	|	Справочник.Номенклатура КАК ДоговорыКонтрагентов
	|ГДЕ
	|	Номенклатура.Наименование ПОДОБНО &ПараметрСтрокаПоиска";
	
	ПараметрСтрокаПоиска = "%_НеИмеетСсылок%";
	Запрос.УстановитьПараметр("ПараметрСтрокаПоиска", ПараметрСтрокаПоиска);	
	РезультатЗапроса = Запрос.Выполнить();	
	//где оператор запроса ПОДРОБНО как раз и будет искать вхождения ПараметрСтрокаПоиска по всем элементам справочника Номенклатура.
	//РезультатПоиска.Параметры.УстановитьЗначениеПараметра("ПараметрСтрокаПоиска", "%_НеИмеетСсылок%");   
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	CЧ = 0;
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		ВыборкаО = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
		ВыборкаО.Удалить();
		
		CЧ=CЧ+1;	
	КонецЦикла;   

	Сообщить(CЧ);

КонецПроцедуры
Показать
167. Светлый ум 509 25.08.23 06:08 Сейчас в теме
ФильтрЖурнала = Новый Структура;
    
    ФильтрЖурнала.Вставить("Событие", "_$Data$_.Update"); //изменение
    
    ДатаНачала = НачалоДня(ТекущаяДата());
    ДатаОкончания = КонецДня(ТекущаяДата());
    
    
    ДокМетаданные = Новый Массив();
    //Для Каждого Документ Из Метаданные.Документы Цикл        
    //    ДокМетаданные.Добавить(Документ);
    //    
    //    //И так пробовал
    //    //ДокМетаданные.Добавить("Документ."+СокрЛП(Документ.Имя));        
    //КонецЦикла;    
    //ДокМетаданные.Добавить(Документы.ПеремещениеТоваров);
    
        //так работает
    ДокМетаданные.Добавить(Метаданные.Документы.ПеремещениеТоваров);

    
    УровниРегистрацииОшибок = Новый Массив;
    УровниРегистрацииОшибок.Добавить(УровеньЖурналаРегистрации.Информация);
    ФильтрЖурнала.Вставить("Уровень",УровниРегистрацииОшибок);
    ФильтрЖурнала.Вставить("ДатаНачала",ДатаНачала);    
    ФильтрЖурнала.Вставить("ДатаОкончания",ДатаОкончания);
    
    УстановитьПривилегированныйРежим(Истина);
    ВнешниеДанные = Новый ТаблицаЗначений;
    Попытка
        ВыгрузитьЖурналРегистрации(ВнешниеДанные, ФильтрЖурнала);
    Исключение
        Сообщить("Ошибка: " + ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    Сообщить("Всего: " + ВнешниеДанные.Количество());
    УстановитьПривилегированныйРежим(Ложь);
    ВнешниеДанные.Колонки.Добавить("КоличествоДанных",Новый ОписаниеТипов("Число"),"КоличествоДанных",15);
    ВнешниеДанные.ЗаполнитьЗначения( 1,"КоличествоДанных");
    
    Для Каждого ТекСтр из ВнешниеДанные Цикл
        Сообщить("-" + ТекСтр.Данные);
    КонецЦикла;
Показать
169. Светлый ум 509 01.11.23 08:18 Сейчас в теме
Пример переноса шапки по страницам ВПФ
Прикрепленные файлы:
Отоварка_СКЧ.epf
170. Светлый ум 509 17.11.23 13:58 Сейчас в теме
Загрузчик УПД по (артикул, наименование, штрихкод)
Прикрепленные файлы:
ПоступлениеТоваровУслуг_ЗаполнитьИзExcel_МнПоиск_ГТД - 15_11_23 - ККЮ_V1.epf
171. Светлый ум 509 24.11.23 06:09 Сейчас в теме
отбор на форме СКД
Прикрепленные файлы:
ОтборНаФорме.epf
172. Светлый ум 509 12.01.24 07:07 Сейчас в теме
Если разделить текст на блоки и сделать заголовки h3. например, то читаемость увеличится. Так же будет полезно во всех вариантах списком выделить плюсы и минусы, так же будет более просто считать вашу позицию по этому вопросу.

Не затронули тему про понимание что именно автоматизировать, при работе на коленке "тушат пожары", при рабочей системе рассчитывают вероятность. Пользователи не всегда читали книжки по управлению запасами. При работе достаточно часто объясняю что статьи расходов и статьи ДДС разные вещи, хотя и связанные между собой.

Из минусов "готового",
* как правило закрытый код
* отсутствие описания подходов применяемых в разработке

Если вы "в теме" по закупочной логистике, то будет интересен разбор вариантов использования типового функционала и дополнения его вашими разработками, если кейс рабочий то реакция "хочу так же", программист скопипастит и пойдет думать как прикручивать к системе пользователь спросит "где купить"?
173. Светлый ум 509 12.01.24 07:20 Сейчас в теме
Системный подход к доработке БП 3.0

https://infostart.ru/1c/articles/2008914/
174. Светлый ум 509 19.01.24 04:55 Сейчас в теме
175. Светлый ум 509 28.02.24 11:21 Сейчас в теме
176. Светлый ум 509 21.03.24 14:22 Сейчас в теме
https://infostart.ru/1c/articles/972535/#Итерация2

Фундаментальное описание по xPath, DOM, Xml обменам и миграции данных
177. Светлый ум 509 03.11.24 07:58 Сейчас в теме
ВыборКаСПрПользователи = Справочники.Пользователи.Выбрать();
	Роль = "слПраваНаобъектыРедактирование";
	сч   = 0;
	
	Пока ВыборКаСПрПользователи.Следующий() Цикл 
		
		Пользователь = ВыборКаСПрПользователи.Ссылка.ПолучитьОбъект();//ПользователиИнформационнойБазы.НайтиПоИмени(КраткоеИмя);
		Пользователь.Роли.Добавить(Метаданные.Роли.Найти(Роль));
		Пользователь.Записать();
		сч= сч+1;	
	КонецЦикла;
	Сообщить(сч);
Показать

групповое назначение ролей 8.2
178. Светлый ум 509 14.11.24 05:31 Сейчас в теме
Все управленческие конфигурации - УНФ, УТ 11, Розница - сворачиваются примерно по одной схеме:
- проверь обмены
- закрой период
- учти оборотные регистры
- не все регистры нужно сворачивать
- используй спец.документы Ввода начальных остатков
- будь аккуратен с типовыми обработками
- делай копии
179. Светлый ум 509 20.01.25 12:09 Сейчас в теме
Функция СведенияОВнешнейОбработке() Экспорт    
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Информация = НСтр("ru = 'Универсальный редактор документов'");
	ПараметрыРегистрации.Версия = "03";
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = "Универсальный редактор документов";
	НоваяКоманда.Идентификатор = "УниверсальныйРедакторДокументов";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	НоваяКоманда.ПоказыватьОповещение = Ложь;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции
Показать
180. Светлый ум 509 30.09.25 07:48 Сейчас в теме
Выгрузка внешних обработок:


&НаКлиенте
Процедура Выгрузить(Команда)
    
    ОчиститьСообщения();
    
    ПередаваемыйИдентификаторФормы = ЭтаФорма.УникальныйИдентификатор;
    
    Для Каждого СтрокаДанные Из Данные Цикл
        
        ПередаваемыйИдентификаторСтроки = СтрокаДанные.ПолучитьИдентификатор();
        Адрес = Поместить_Файл_Во_Временное_Хранилище_И_Вернуть_Адрес_На_Сер­<wbr>вере(ПередаваемыйИдентификаторСтроки, ПередаваемыйИдентификаторФормы);
        ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);
        
        // Создаем объект Файл для записи
        ФайлДляЗаписи = Новый Файл(СтрокаДанные.ПолныйПуть);
        
        // Создаем все необходимые папки в пути
        КаталогДляЗаписи = Новый Файл(ФайлДляЗаписи.Путь);
        Если Не КаталогДляЗаписи.Существует() Тогда
            СоздатьКаталог(КаталогДляЗаписи.ПолноеИмя);
        КонецЕсли;
        
        // Записываем файл  
        Если ДвоичныеДанные = Неопределено Тогда
            Сообщить("Не удалось получить файл из временного хранилища для: " + СтрокаДанные.ПолныйПуть +  " ; " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
            Продолжить;
        КонецЕсли;
        ДвоичныеДанные.Записать(ФайлДляЗаписи.ПолноеИмя);
        
        ПроверяемыйФайл = Новый Файл(СтрокаДанные.ПолныйПуть);
        Если ПроверяемыйФайл.Существует() = Истина Тогда
            СтрокаДанные.ФайлВыгружен = Истина;    
        Иначе
            Сообщить("Не удалось выгрузить файл: " + СтрокаДанные.ПолныйПуть, СтатусСообщения.Внимание);
        КонецЕсли; 
        
    КонецЦикла;
        
КонецПроцедуры
Показать
181. Светлый ум 509 06.05.26 19:39 Сейчас в теме
https://bgcalls.ru/roadmap?utm_campaign=roadmap&utm_term=[keyword]&yclid=17734823974446825471&ybaip=1

Дорожная карта программиста 1С
182. Светлый ум 509 07.07.26 22:28 Сейчас в теме
Добавление колонки в расширение программно с расчетом значения:

&НаСервере
Процедура Клнк_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	Клнк_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка);
КонецПроцедуры

&НаСервере
Процедура Клнк_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ИмяКолонки  = "ЦенаЗаКг";
	ПутьКДанным = "Объект.Товары." + ИмяКолонки;
	ТипЧисло    = Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(15, 2, ДопустимыйЗнак.Любой));            
	
	// добавим реквизит
	МассивРеквизитов = Новый Массив;
	МассивРеквизитов.Добавить(Новый РеквизитФормы(ИмяКолонки, ТипЧисло, "Объект.Товары", "Цена (за кг.)", Ложь));
	ИзменитьРеквизиты(МассивРеквизитов);  	

	// Вставляем поле ввода перед элементом «ТоварыЦена»
	НовыйЭлемент = Элементы.Вставить(
	ИмяКолонки,                      // Имя элемента
	Тип("ПолеФормы"),                // Тип элемента 
	Элементы.Товары,                 // Родитель (табличная часть)
	Элементы.ТоварыПроцентОтклоненияОтЦеныЗаказа // Элемент, перед которым вставляем
	);
	
	// Теперь можно задать свойства элемента
	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; // Например, сделать поле флажком
	НовыйЭлемент.ПутьКДанным = "Объект.Товары.ЦенаЗаКг"; //
	
	//KKY 07.07.26 - Расчет цены за КГ -->  
	Для Каждого ТекСтр из Объект.Товары Цикл    
		
		КоэффициентУпаковки = ТекСтр.Упаковка.Числитель;
		Если ТекСтр.Номенклатура.ЕдиницаИзмерения.Наименование = "кг" Тогда  
			ТекСтр.ЦенаЗаКг = ТекСтр.Цена / ?(ЗначениеЗаполнено(КоэффициентУпаковки),КоэффициентУпаковки,1);//ЦенаВсегоЗаКг/ТекСтр.Количество;
		Иначе
			ТекСтр.ЦенаЗаКг = (ТекСтр.Цена/ТекСтр.КоличествоУпаковок); 
		КонецЕсли;	 
		
	КонецЦикла;	
	  	
КонецПроцедуры
Показать
Для отправки сообщения требуется регистрация/авторизация