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

11.06.20

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

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

Скачать исходный код

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

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

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

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

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

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

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

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

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

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

 

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    3621    19    1    

40

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    4301    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178681    1084    0    

862

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

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

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

14400 руб.

29.04.2020    27948    82    146    

61

Быстрый поиск дублей с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    155651    327    252    

559

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61548    91    59    

74

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

21600 руб.

15.05.2017    42648    10    24    

38

"Менеджер потоков 2.1": УПП: "Восстановление партий"

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

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11859    5    9    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
97. Светлый ум 406 20.02.20 11:38 Сейчас в теме
Управление формами из общего модуля
https://infostart.ru/public/199480/
+1
98. Светлый ум 406 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. Светлый ум 406 21.02.20 12:15 Сейчас в теме
взято с https://infostart.ru/public/118784/ - рабочий вариант,
взято от сюда http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=625538

&НаКлиенте
Процедура ОткрытьФормуНового(Команда)
 
               Форма = ПолучитьФорму("Документ.ПродажаТоваровУслуг.Форма.ФормаДокумента");
               ДанныеФормы = Форма.Объект;
               ЗаполнитьНаСервере(ДанныеФормы);
               КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
               Форма.Открыть();
 
КонецПроцедуры
 
&НаСервере
Процедура ЗаполнитьНаСервере(НовыйОбъект)
               НовыйОбъект.Контрагент = Справочники.Контрагенты.НайтиПоКоду("000000005");          
КонецПроцедуры
Показать
101. Светлый ум 406 21.02.20 12:38 Сейчас в теме
102. Светлый ум 406 24.02.20 20:22 Сейчас в теме
103. Светлый ум 406 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. Светлый ум 406 26.03.20 12:49 Сейчас в теме
Выгрузка и загрузка данных XML 8.3 +
https://infostart.ru/public/1007340/

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

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

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

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

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


Получение имени метаданного по ссылке
108. Светлый ум 406 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. Светлый ум 406 29.04.20 06:52 Сейчас в теме
//Получение структуры на сервере для обработки на клиенте по ссылке
Функция ПолучитьСтруктуруРеквизитовСправочника(СправочникСсылка)
	
	ИмяСправочника       = СправочникСсылка.Метаданные().Имя;
	РеквизитыСправочника = Новый Структура();
	Для каждого Рекв Из Метаданные.Справочники[ИмяСправочника].Реквизиты Цикл
		ИмяРеквизита      = Рекв.Имя;
		ЗначениеРеквизита = СправочникСсылка[ИмяРеквизита];
		РеквизитыСправочника.Вставить(ИмяРеквизита, ЗначениеРеквизита);
	КонецЦикла;
	
	Возврат РеквизитыСправочника;
	
КонецФункции
Показать
110. Светлый ум 406 07.05.20 14:33 Сейчас в теме
Проверка на наличие подсистемы:

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

                НовыйЭлемент.УстановитьСсылкуНового(НоваяСсылка);
128. Светлый ум 406 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. Светлый ум 406 28.07.21 06:37 Сейчас в теме
НовыйGUID               = Новый УникальныйИдентификатор("e99ec275-7b13-11eb-80fc-20040feaf590");
ДокументСсылка_изGUID    = Документы.ЗакупочнаяПроцедура.ПолучитьСсылку(НовыйGUID);
ПараметрыФормы                = Новый Структура("Ключ", ДокументСсылка_изGUID);
ОткрытьФорму("Документ.ЗакупочнаяПроцедура.Форма.ФормаДокумента", ПараметрыФормы);
ОткрытьЗначение(ДокументСсылка_изGUID);	    
130. Светлый ум 406 28.07.21 08:26 Сейчас в теме
ГУИД_Параметра = "e99ec275-7b13-11eb-80fc-20040feaf590";
ЗаголовокНавигационнойСсылки = "e1cib/data/Документ.ЗакупочнаяПроцедура?ref=";
НавигациооннаяСтрокаОбъекта  = Сред(ГУИД_Параметра,20,4)+ Сред(ГУИД_Параметра,25,12)+ Сред(ГУИД_Параметра,15,4)+ Сред(ГУИД_Параметра,10,4)+ Лев(ГУИД_Параметра,8);
НавигациооннаяСсылккаОбъекта = ЗаголовокНавигационнойСсылки + НавигациооннаяСтрокаОбъекта;
ПерейтиПоНавигационнойСсылке(Документ_71);   
131. Светлый ум 406 14.09.21 07:33 Сейчас в теме
Правила запроса. Выдержки из книги "Настольная книга 1С:Эксперта по технологическим вопросам"
https://infostart.ru/1c/articles/1078667/
132. Светлый ум 406 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. Светлый ум 406 16.09.21 13:13 Сейчас в теме
135. Светлый ум 406 21.09.21 10:40 Сейчас в теме
тут проблема в разрешении экрана. Открыл я твою форму на такси в 1С:Предприятие 8.3 (8.3.7.2008).
Так вот когда ты устновишь минимальное разрешение тебе проверка выдает следующее
Ошибка генерации элемента формы: "COMВариантРаботыИнформационнойБазы" - Ширина меньше допустимой
Ошибка генерации элемента формы: "ПодключенияВариант" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMТипАутентификации" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMИмяПользователя" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMИмяПользователя - Заголовок" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMПарольПользователя" - Ширина меньше допустимой
Ошибка генерации элемента формы: "COMГруппаПользовательПароль" - Ширина меньше допустимой
Ошибка генерации элемента формы: "ПроверитьПодключениеCOM" - Ширина меньше допустимой


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

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

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



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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

    для й=1 по 10 цикл
        Обл.Параметры.Пар1 = й;
        Обл.Параметры.пар2 = 10-й;
       ВыведеннаяОбласть = ТД.Вывести(Обл);
        Сообщить("Я вывелась тут: R" + (ВыведеннаяОбласть.Верх) + "C"+(ВыведеннаяОбласть.Лево+1));
    КонецЦикла;
149. Светлый ум 406 15.02.23 10:21 Сейчас в теме
ТОС - теория управления проектами - графы курса
Прикрепленные файлы:
ТОС - теория управления проектами - графы курса.txt
150. Светлый ум 406 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. Светлый ум 406 28.02.23 10:26 Сейчас в теме
(151) Потребность в этих процедурах была при обновлении после down grade с Корп до базовой
156. Светлый ум 406 24.03.23 06:31 Сейчас в теме
// ДЕКАДУ нельзя вывести через формат, но можно так:
Строка(Цел(День(Дата('20020820153309')) / 10) + 1)+" декада" = 2 декада
157. Светлый ум 406 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. Светлый ум 406 19.04.23 10:52 Сейчас в теме
Сбор требований. Курс по управлению проектами, часть 7
https://infostart.ru/1c/articles/870848/
159. Светлый ум 406 24.04.23 21:39 Сейчас в теме
160. Светлый ум 406 02.05.23 10:03 Сейчас в теме
// Добавлена проверка на статус ВходВПрограмму
// из ХранилищеЗначенийОбъекта (Хранилище Значений Объекта)
// Производим чтение структуры и проверяем на условие истина(булево)
СписокВыбрПольз = Параметры . ПользователиСБыстрымДоступом ;
Запрос = Новый Запрос ( «ВЫБРАТЬ
|Ссылка ИЗ Справочник.Пользователи
| ГДЕ НЕ ПометкаУдаления
| И НЕ Недействителен
| И НЕ Служебный» );

Выборка = Запрос . Выполнить (). Выбрать ();
Пока Выборка . Следующий () Цикл
Если СписокВыбрПольз . НайтиПоЗначению ( Выборка . Ссылка ) = Неопределено Тогда
ПользовательОбъект = Выборка . Ссылка . Получитьобъект ();
ХранилищеЗн = ПользовательОбъект . СвойстваПользователяИБ ;
ХранилищеЗнПолучить = ХранилищеЗн . Получить ();
Если НЕ ХранилищеЗнПолучить = Неопределено
И ХранилищеЗнПолучить . ВходВПрограммуРазрешен Тогда
ВсеЮзеры . Добавить (). Пользователь = Выборка . Ссылка ;
КонецЕсли;
Иначе
ПользовательОбъект = Выборка . Ссылка . Получитьобъект ();
ХранилищеЗн = ПользовательОбъект . СвойстваПользователяИБ ;
ХранилищеЗнПолучить = ХранилищеЗн . Получить ();
Если НЕ ХранилищеЗнПолучить = Неопределено
И ХранилищеЗнПолучить . ВходВПрограммуРазрешен Тогда
СписокЮзеров . Добавить (). Пользователь = Выборка . Ссылка ;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Показать
161. Светлый ум 406 05.06.23 06:15 Сейчас в теме
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. Светлый ум 406 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. Светлый ум 406 02.08.23 07:32 Сейчас в теме
Генерация батника в 1С

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы "в теме" по закупочной логистике, то будет интересен разбор вариантов использования типового функционала и дополнения его вашими разработками, если кейс рабочий то реакция "хочу так же", программист скопипастит и пойдет думать как прикручивать к системе пользователь спросит "где купить"?
173. Светлый ум 406 12.01.24 07:20 Сейчас в теме
174. Светлый ум 406 19.01.24 04:55 Сейчас в теме
175. Светлый ум 406 28.02.24 11:21 Сейчас в теме
176. Светлый ум 406 21.03.24 14:22 Сейчас в теме
https://infostart.ru/1c/articles/972535/#Итерация2

Фундаментальное описание по xPath, DOM, Xml обменам и миграции данных
Оставьте свое сообщение