Подбор в управляемой форме - что может быть проще?

Публикация № 675208

Разработка - Работа с интерфейсом

УФ управляемые формы асинхронность подбор описание оповещения

Технологии модальности сейчас меняются на технологии асинхронности, многопоточности и прочие дивные вещи, что, в свою очередь, заставляет людей еще чаще спрашивать о том, что да как в этой новой нелегкой жизни. Разбираемся!

Добрый день, коллеги!

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

Навела меня на мысль рассказать об этом еще раз некая Анна, создавшая эту вот тему, в которой в очередной раз встречаю я богомерзкие слова "Результат = Форма.ОткрытьМодально()", а нервы то уже не те!!! )))

Итак, приступим к тому, чтобы внести ясность.

СУТЬ ЗАДАЧИ

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

Некоторые "программисты" (ну да, назовем так), которые еще не вкусили прелестей нового мира и нового мирового порядка, все еще для подобных действий не находят ничего лучше, чем использовать старый и проверенный "Элементик = ОткрытьФормуМодально(ИмяФормы, ...);", а кое-кто сначала форму получает в переменную и только потом открывает (как в том самом вопросе на форуме, с которого все началось). Ну не на олимпиаде он - за дополнительную переменную балл не снижают (зряплату не понижают).

СУТЬ ВЕЩЕЙ

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

Давайте ответим на главный вопрос статьи: "как организовать подбор в управляемой форме?" Для этого откроем форму с признаком "ЗакрыватьПриВыборе = ложь"  и "РежимВыбора = истина":

&НаКлиенте
Процедура Подбор(Команда)

	ОткрытьФорму(
		"Справочник.Справочник1.ФормаВыбора", 
		Новый Структура("ЗакрыватьПриВыборе, РежимВыбора", 
			Ложь, Истина), 
			ЭтаФорма
			, , , ,
			Новый ОписаниеОповещения(
				"ПриЗакрытииФормыПодбора", 
				ЭтаФорма, 
				"Подбор"), 
			РежимОткрытияОкнаФормы.БлокироватьОкноВладельца
	);

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

В приведенном коде открывается форма выбора справочника "Справочник1", также предполагается, что у нас есть экспортная клиентская процедура "ПриЗакрытииФормыПодбора", которая будет вызваться при закрытии формы выбора.

Т.к. у нас параметр "ЗакрыватьПриВыборе" установлен в "ложь", то форма справочника при двойном клике или нажатии клавиши "Энтер" на элементе закрываться не будет. При этом т.к. параметр "РежимВыбора" установлен в "Истина", то каждый даблклик и "Энтер" будет генерировать событие "ОбработкаВыбора" во владельце. Таким образом, если у нас, например, каждый раз, когда выбирают элемент в форме выбора, должна добавиться строка табличной части, код дополнится вот такой процедурой:

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	Объект.ТабличнаяЧасть1.Добавить().ФИО = ВыбранноеЗначение;
КонецПроцедуры

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

Код, приведенный выше, всего-то добавляет новую строку в табличную часть "ТабличнаяЧасть1" и устанавливает там в реквизит "ФИО" выбранный в форме подбора элемент справочника.

Для красочности картины давайте дополним код процедурой, обрабатывающей закрытие формы выбора:

&НаКлиенте
Процедура ПриЗакрытииФормыПодбора(Рез, Доп) Экспорт 
	Сообщить("Ура, форма подбора закрыта!");
КонецПроцедуры

В данном случае при закрытии формы владельца просто вывалится сообщение: "Ура, форма подбора закрыта!".

 

РАЗВИТИЕ НАСТУПЛЕНИЯ

Мы можем, конечно, вообще не использовать обработку выбора при выборе единичного значения. Для этого достаточно переписать открытие формы выбора таким образом, чтобы параметр "ЗакрыватьПриВыборе" устанавливался в "Истина". Но и обработку выбора значения нужно будет реализовать в асинхронной процедуре, указанной в описании оповещения:

&НаКлиенте
Процедура ПриЗакрытииФормыПодбора(Рез, Доп) Экспорт 
	// если ничего не выбрали, то в рез будет пусто...
	Если НЕ Рез = Неопределено Тогда 
		Объект.ТабличнаяЧасть1.Добавить().ФИО = Рез;
	КонецЕсли;
	//Сообщить("Ура, форма подбора закрыта!");
КонецПроцедуры

//&НаКлиенте
//Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
//	Объект.ТабличнаяЧасть1.Добавить().ФИО = ВыбранноеЗначение;
//КонецПроцедуры

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

Также в обработке асинхронного оповещения необходимо контролировать возвращенный результат. Если результат пустой, то это говорит о том, что форму просто закрыли, не выбрав никакого значения. Для этого в коде добавлена проверка на "Рез = Неопределено".

Давайте окончательно разберемся с темой и добавим возможность ввода, например, количества "ФИО" в документе. Для этого пропишем еще одну асинхронную процедуру, которая будет обрабатывать ввод числового значения. Для этого вернем "ложь" для параметра формы "ЗакрыватьПриВыборе", раскомментируем процедуру "ОбработкаВыбора" и убурем из процедуры асинхронного оповещения добавление строки:


&НаКлиенте
Процедура ПриЗакрытииФормыПодбора(Рез, Доп) Экспорт 
	//если ничего не выбрали, то в рез будет пусто...
	//Если НЕ Рез = Неопределено Тогда 
	//	Объект.ТабличнаяЧасть1.Добавить().ФИО = Рез;
	//КонецЕсли;
	// снова "Уга, товагищи!"
	Сообщить("Ура, форма подбора закрыта!");
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

	ПоказатьВводЧисла(
		Новый ОписаниеОповещения("ПриВводеЧисла",
			ЭтаФорма,
			ВыбранноеЗначение), , // вот тут у нас как раз появился доппараметр
		"Введите количество ФИО",
		10,
		0
	);
	
КонецПроцедуры

&НаКлиенте
Процедура ПриВводеЧисла(Рез, Доп) Экспорт 
	
	// найдем строки с этим "ФИО"
	НайденныеСтроки = Объект.ТабличнаяЧасть1.НайтиСтроки(Новый Структура("ФИО", Доп));
	
	// если не нащли - добавим
	Если НайденныеСтроки.Количество() = 0 Тогда 
		Ст = Объект.ТабличнаяЧасть1.Добавить();
		Ст.ФИО = Доп;
		Ст.Колво = рез;
	Иначе
		// если нашли - увеличим колчество
		НайденныеСтроки[0].Колво = НайденныеСтроки[0].Колво + рез;
	КонецЕсли;

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

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

ЗАКЛЮЧЕНИЕ

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

Специальные предложения

Лучшие комментарии
17. spacecraft 19.09.17 11:06 Сейчас в теме
Придрались к наименованию переменных. Это больше к рефакторингу относится.
Тут есть программная "ошибка".
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	Объект.ТабличнаяЧасть1.Добавить().ФИО = ВыбранноеЗначение;
КонецПроцедуры

Да и в другом примере ОбработкаВыбора. Этот код не всегда будет работать как задумано.
distorshion; GoR1313; Hamsik; TreeDogNight; pbazeliuk; NSerget; jONES1979; +7 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. nomadon 391 19.09.17 07:07 Сейчас в теме
Сначала задается планка где лишняя переменная - это плохо, а потом в, собственном коде, Рез и Доп. Отсюда вывод, даже несколько, но некоторые до конца не ясны:
1. Если обгадил чужой код - самому можно плохокодить
2. Чужой код гадь, а в свой не смотри
3. Даже если знаешь что плохогодить нельзя, но ничего с этим сделать не можешь - посмотри в чужой код и скажи что там еще хуже


Доброе утро;)
ZhiharevDmitriy; kadild; PoZiTiFFF; bulpi; Gorus; TreeDogNight; jONES1979; NN2P; uri1978; awk; Tolpinski; mmoozzgg; +12 Ответить
2. starik-2005 2212 19.09.17 09:17 Сейчас в теме
(1) рез и доп - обязательные аргументы функции оповещения. Без них она работать не будет. Учим мат.часть.

Ну, как я и говорил, подтянулись "программисты", плохо владеющие механизмами платформы. Но для остальных появилась возможность учиться на чужих ошибках)))
kadild; Anchoret; uri1978; Sheriff1987; KSy; корум; +6 1 Ответить
9. nomadon 391 19.09.17 10:03 Сейчас в теме
(2) я не про наличие параметров в процедуре (кстати это процедура а не функция), а про смысловое наименование переменных
11. starik-2005 2212 19.09.17 10:08 Сейчас в теме
(9) в С вообще процедур нет - одни функции, но некоторые из них не возвращают значение. Так что разницы между словами "процедура" и "функция" практически нет. Главное, что свою функцию данная процедура выполняет. Помните картинку о всей сути критиков со словами "горизонт завален"? Вот в этом вся суть Вашей критики. Молодежи может даже интересно на этот диалог посмотреть, так что не зря.
IraNov_; kadild; +2 Ответить
14. nomadon 391 19.09.17 10:21 Сейчас в теме
(11) ну тогда можно вообще в нулях и единицах пример писать, функция процедуры тоже будет выполняться)
user5300; +1 Ответить
15. starik-2005 2212 19.09.17 10:31 Сейчас в теме
(14) ну если заговорили о нулях и единицах, то в ассемблере нет различий в вызове процедур и функций, а машинному коду об именах переменных ничего не известно.

По поводу стандартов, то они предписывают именовать переменные так, чтобы была ясна их суть. С "рез" и "доп" суть ясна. Проблема тут в интерпретации стандартов с Вашей стороны.
16. nomadon 391 19.09.17 10:36 Сейчас в теме
(15) а мы пишем код что бы кому было ясно?
1. машине?
2. тому кто писал это код?
3. тому кто не писал этот код?

Если учитывать последнее, то принимает решение о допустимости кода совсем не тот кто его писал а тот для кого.
Brawler; mvxyz; kuzyara; BlizD; TreeDogNight; +5 Ответить
7. starik-2005 2212 19.09.17 09:51 Сейчас в теме
(1) если говорить о коде, то, как я понял, Ваша придирка была к поименованию переменных. Т.к. 1с - это чаще всего открытый код и данное замечание справедливо. Моя же придирка была к использованию лишней переменной - за это в олимпиадном программировании снижают балл, ибо это грубая ошибка, влияющая на производительность.
10. nomadon 391 19.09.17 10:05 Сейчас в теме
(7) моя придирка в общем впечатлении, если сами себе поднимаете планку - то приводить дурацкие ошибки в пример - глупо.
12. starik-2005 2212 19.09.17 10:09 Сейчас в теме
(10) ошибки с именем переменной? Это не ошибки. Но да, горизонт завален)))
13. nomadon 391 19.09.17 10:19 Сейчас в теме
(12) если не считать нарушение стандартов разработки ошибкой то не ошибка)
3. Сурикат 316 19.09.17 09:23 Сейчас в теме
Имелось ввиду, что название переменных не отображает их суть.
Неужели так сложно написать Результат, ДополнительныеПараметры?

А если процедура получиться не маленькая в конце уже и можно запутаться в сокращениях...
kadild; mvxyz; PoZiTiFFF; Gorus; TreeDogNight; Prikum; +6 Ответить
4. starik-2005 2212 19.09.17 09:25 Сейчас в теме
(3) а смысл обязательные аргументы функции писать полными именами? Я ж написал, что для друзей УФ можно и без фамилии обойтись.)))
5. TODD22 18 19.09.17 09:35 Сейчас в теме
Очень похоже на пример из книги Радченко "Практическое пособие разработчика" из главы "Организация подборов" или нет?

На экзамене на спеца "подбор" заставляют делать через ВременноеХранилище.
6. starik-2005 2212 19.09.17 09:47 Сейчас в теме
(5) по-разному подбор организовать можно. Радченко? Кто это?
8. TODD22 18 19.09.17 09:54 Сейчас в теме
(6)https://its.1c.ru/db/pubdevguide
по-разному подбор организовать можно.

Для полноты картины можно было и подбор через ВХ привести...
19. webester 33 20.09.17 08:44 Сейчас в теме
(6)
Радченко? Кто это?

Вот и выросло молодое поколение... "программистов (ну да, назовем так)"(с)кто-то из (0)
21. starik-2005 2212 20.09.17 10:25 Сейчас в теме
(19) ага, когда мы писали машинный код в тетрадках по русскому языку, их еще и в проекте не было))) И Радченко тоже не было.
22. webester 33 20.09.17 12:01 Сейчас в теме
(21)Не было конечно,не радченко, ни чуства юмора, ничего не было. Зато ЧСВ было точно.
23. starik-2005 2212 20.09.17 12:01 Сейчас в теме
(22)
Зато ЧСВ было точно.
Ну как без него-то, родимого. Это как без Радченко современным говнокодерам )))
24. webester 33 20.09.17 12:07 Сейчас в теме
(23)Это точно. 90% людей считают, что их способности выше средних. Хотя лурк утверждает, что 95% населения — идиоты. Вроде как нонсенс,но на самом деле, все логично.
25. starik-2005 2212 20.09.17 12:11 Сейчас в теме
(24) ну с учетом того, что в спейсикс и тесла народу работает крайне мало, то ЛУРК сильно завысил цифру.
26. webester 33 20.09.17 15:16 Сейчас в теме
(25)Скорее занизил, судя по тому, что происходит вокруг.
И я не знаю каков процент
Сумасшедших на данный час,
Но если верить глазам и ушам -
Больше в несколько раз. (с)ИзвестноКто
Mechanik21; +1 Ответить
27. TODD22 18 20.09.17 15:45 Сейчас в теме
(26)
Скорее занизил, судя по тому, что происходит вокруг.

ЧСВ разум затуманил... бывает....
Светлый ум; +1 Ответить
28. starik-2005 2212 20.09.17 15:46 Сейчас в теме
(26)
Скорее занизил
Занизил одно, завысил второе. Я о количестве умных говорил, а Вы о дураках )))
29. webester 33 20.09.17 15:47 Сейчас в теме
(27)ну я то себя отношу к тем 95% куда уж нам уж....
(28)кхм )))
30. starik-2005 2212 20.09.17 15:48 Сейчас в теме
(29)
куда уж нам уж
Я, лично, всегда за левелап. Но, как говорил мудрец, что можно привести верблюда к воде, но заставить его пить не получится. Хочет - будет пить, не хочет - не будет.

Вот, кстати, придумал хорошую задачку для собеседования: есть куб или квадрат с ребром/стороной Х. Какая длина стороны/ребра будет у куба/квадрата с объемом/площадью, в два раза меньше исходного. Сильно сложная? )))
31. webester 33 20.09.17 15:49 Сейчас в теме
(30)Я пробую. Но вроде как уже напился. Не знаю может влезет еще немного.
>>Сильно сложная.
Что вы хотите выяснить этой задачей? Я тоже ищу, что бы спросить у кандидата в программисты, если он не умеет ничего. От слова вообще.
32. KapasMordorov 428 20.09.17 16:39 Сейчас в теме
(30)
Он над нами издевался. Ну сумасшедший, что возьмешь!
18. pbazeliuk 1767 19.09.17 18:39 Сейчас в теме
(5) На экзамене можно доказать свою позицию, но экзаменаторы могут иметь уровень ниже чем у программиста.
Вариант как в статье и подбор через временное хранилище могут иметь побочные эффекты, и если объяснить экзаменатору их - придирок не должно быть.

Очень давно сдавал специалиста, и решил задачу контроля остатков с помощью "нового" метода проведения и опции "БлокироватьДляИзменения" :) Почти влепили "-1" за решение пока не ткнул носом в литературу и новую на то время конфигурацию УТ 11.
20. TODD22 18 20.09.17 08:48 Сейчас в теме
(18)Речь была не столько о конкретном методе, сколько о том что не плохо было бы рассказать о нескольких методах.
А на экзамене не всегда есть возможность что то доказывать, не все сдают очно и не у всех есть возможность из за экзамена ехать за 5000 км.
17. spacecraft 19.09.17 11:06 Сейчас в теме
Придрались к наименованию переменных. Это больше к рефакторингу относится.
Тут есть программная "ошибка".
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	Объект.ТабличнаяЧасть1.Добавить().ФИО = ВыбранноеЗначение;
КонецПроцедуры

Да и в другом примере ОбработкаВыбора. Этот код не всегда будет работать как задумано.
distorshion; GoR1313; Hamsik; TreeDogNight; pbazeliuk; NSerget; jONES1979; +7 Ответить
33. Labotamy 20.09.17 20:28 Сейчас в теме
А это точно статья из 2017 года? =)
34. nomadon 391 20.09.17 22:29 Сейчас в теме
(33) нет конечно..
Пока действие происходит в одном месте весь фокус происходит в другом,
Статья про то что нужно все-таки не забывать про пользователей и делать им подбор, тем более это просто, а в комментах батл в стиле мисты)
35. Rustig 1581 22.09.17 08:49 Сейчас в теме
(0)
1) в УТ 10.3, в КА 1.1, которые на обычных формах, до сих пор используется форма подбора, и весь механизм, описанный в данной статье, используется в данной форме подбора. Что было на обычных формах, перешло в управляемые. Ничего нового. :)
Мне кажется, что разобраться с идеей подбора легче на обычных формах, чем на управляемых - нет отвлекающих процедур перехода с клиента на сервер и наоборот (какие переменные передать на сервер и получить обратно на клиенте).
2) У самой популярной методички по изучению 1с от автора Радченко методы организации подбора освещаются в отдельной главе книги.
3) В чем смысл статьи - я не понимаю.
Всякий раз в статьях посвященных управляемым формам замечаю одну и ту же тенденцию - "сложность" - как будто все прекрасное должно быть сложным - уберите из статьи слова "многопоточность", "асинхронность" , "НаКлиенте" - и идея подбора станет чуточку понятнее. :)
Прикрепленные файлы:
Meistersinger; +1 Ответить
36. starik-2005 2212 22.09.17 10:52 Сейчас в теме
(35)
Всякий раз в статьях посвященных управляемым формам замечаю одну и ту же тенденцию - "сложность"
Статья как раз и говорит о том, что никакой сложности нет. В этом основная ее цель. А причина, по которой она появилась, в статье описана.
37. Jestery 25.09.17 22:37 Сейчас в теме
Если НЕ Рез = Неопределено Тогда


Сорри за возможно очевидный вопрос, я новичок. А почему не написать
Рез <> Неопределено?
38. starik-2005 2212 25.09.17 23:12 Сейчас в теме
(37)
А почему не написать
А вломы переключать раскладку.
39. strange2007 143 08.08.18 16:31 Сейчас в теме
(37) Потому что начинающие программисты всегда гнут пальцы знаниями "крутых" языков. Вот когда автор поймёт, что программирование в бизнесе, это работа с объектами этого самого бизнеса, а не методами сортировки пузырьком, тогда будет писать код грамотный и может даже профессиональный.
Каюсь, 20 лет назад я тоже считал единственным настоящим языком программирования ассемблер.
Wrols; KTo; +2 Ответить
40. starik-2005 2212 08.08.18 17:48 Сейчас в теме
(39)
что программирование в бизнесе, это работа с объектами этого самого бизнеса, а не методами сортировки пузырьком, тогда будет писать код грамотный и может даже профессиональный
Ну когда автор этого сообщения поймет, что решение задач бизнеса в программировании - это применение актуальных методов и приемов, последних технологических достижений и разработок в области алгоритмов и обработки данных, тогда он немножко будет думать перед тем, как ляпнуть какую-то ерунду )))
41. strange2007 143 09.08.18 04:41 Сейчас в теме
(40) Хм, спорное утверждение. Во многих российских компаниях используется семёрка, а в западных компаниях даже попадаются системы, работающие на алгоритмах, написанных в прошлом тысячелетии. При этом большинство из этих примеров - успешные зарабатывания денег и программисты в этих компаниях зачастую в совершенстве владеют всякими современными средствами разработки!
Meistersinger; +1 Ответить
42. strange2007 143 09.08.18 08:25 Сейчас в теме
(40) Всё. Нигде не нашёл в рекомендациях по программированию на 1С хоть какое-то упоминание про запутывание читаемости. И вообще, трудночитаемый код применяется только в некоторых случаях. Например, при создании защищённых модулей или для попытки зарабатывания дополнительных денег с невезучего клиента. В других случаях "трудный" код только вредит и значит гордое "А вломы переключать раскладку." является показателем не совсем высокого профессионализма.
43. starik-2005 2212 09.08.18 08:58 Сейчас в теме
(42) Вы даже не представляете, на сколько смешным может быть Ваш комментарий. Но точно могу сказать одно - комплексы вполне себе лечатся. Обратитесь к специалисту, ибо кроме как нарушением психики мне сложно объяснить проидирки к логическому оператору НЕ или к сокращению наименования переменных. Но, повторюсь, это лечится, при том весьма успешно.
44. strange2007 143 09.08.18 09:44 Сейчас в теме
(43) В единичном случае всё прекрасно понятно и без разницы как написано. А вот когда блок большой и его трудно анализировать, то такие мелочи вносят ещё большую сумятицу. Что часто приводит к мысли (часто тоже непрофессиональной) - "да я лучше тут всё перепишу". Именно поэтому код должен быть правильным во всём, в т.ч. и в мелочах.
Вообще мне удивительно, что Вы, адепт всяких сей, так позорите свой клан. Ведь и сишники и ассемблеристы (и все остальные) стремятся к понятному коду, а не к пальцегнутому.
Примечание: придирка не к конкретно сокращению переменных, а именно к ошибочному понимаю по поводу культуры программирования.
45. starik-2005 2212 09.08.18 12:52 Сейчас в теме
(44)
Именно поэтому код должен быть правильным во всём, в т.ч. и в мелочах.
С этим утверждением легко спорить исходя из тезиса, что лучше работающий прототип, чем теоретическая идеальная модель. Но я рад, что разговор вернулся в зону конструктива - это прогресс.

(44)
Вообще мне удивительно, что Вы, адепт всяких сей, так позорите свой клан. Ведь и сишники и ассемблеристы (и все остальные) стремятся к понятному коду, а не к пальцегнутому.
Подобный аргумент говорит о том, что Вы не особо разбираетесь в проблемматике. Фактически С++ и Asm (сейчас в крайних случаях) используются для достижения скорости, а скорость - это плоский код, с низким уровнем абстракции и высокой плотностью полезной нагрузки. К понятному же коду стремятся за счет повышения уровня абстракции, декларативности, замыканий. Но все эти механизмы понятны тем, кто в курсе, как они работают, начинающим же кодерам данный уровень заведомо недоступен и вызывает шок.

(44)
Примечание: придирка не к конкретно сокращению переменных, а именно к ошибочному понимаю по поводу культуры программирования.
Я так начал писать после того, как увидел однажды в коде подобную конструкцию (типа "Если НЕ а = 5"), а для меня логика, как совокупность булевых преобразований, проста и понятна, какой бы уровень вложенности условий бы ни был. Да, вложенность условий (та же логическая инверсия НЕ) повышает цикломатическую сложность кода, но в одном условии на "НЕ (РАВНО)" эта сложность повышается на единицу всего, что в рамках даже функции величина несущественная.
46. strange2007 143 09.08.18 13:12 Сейчас в теме
(45)
а для меня логика, как совокупность булевых преобразований, проста и понятна, какой бы уровень вложенности условий бы ни был

Очень сильно не соглашусь. И в СССР и в Западном мире давно уже доказано, что для человека максимальное количество анализируемых сущностей от 5 до 8. Всё что больше, это резкое повышение вероятных ошибок и как следствие, ухудшение во всём. Именно поэтому при декомпозиции любого процесса принято за один раз анализировать только 5-8 сущностей. В том числе это применимо и при анализе кода.
Проще говоря, когда всего одна строка кода, всё понятно и красиво. Но как только получаем большой модуль, состоящий из кучи противоречивых и/или непонятных кусков, то упираемся в стену "КАРАУЛ!". Кому это выгодно? Как писал выше, только тем, кто не хочет что бы его код читали или тем, кто зарабатывает таким образом.
И да, хорошая работа - оплачиваемая работа. Ну а ковыряние даже в своём коде с важным лицом, мало кому нравится.
Скажем так - если Ваши утверждения верны и имеют право жить, тогда большинство поддержит данные тезисы и, уверяю, 1С-вцы издадут целую главу рекомендаций, на тему как надо сокращать переменные. Ну а пока этого нет....

А про культуру программирования на ассемблере тоже много всего написано. Например, общепринятое обнуление регистра (против майкрософтовского).
Meistersinger; +1 Ответить
47. starik-2005 2212 09.08.18 13:20 Сейчас в теме
(46)
А про культуру программирования на ассемблере тоже много всего написано. Например, общепринятое обнуление регистра (против майкрософтовского).
А которого регистра не подскажите? В Ассемблере x86 этих регистров до чертиков, при том регистр указателя стека, регистр указателя команды, регистры сегментов и некоторые другие регистры обнулять - это в принципе нонсенс. А SUB (E/X)AX,(E/X)AX или XOR (E/X)AX,(E/X)AX, как обнуление аккумулятора в соответствующей архитектуре (Х - 64 бита, Е - 32 бита, без них - 16 бит) - это все-же потребность, а не "культура".

Ну и уж если просто на Вашем уровне придираться к последнему Вашему сообщению, то вот знаками препинания вы, увы, пользоваться не умеете, а тексты читают куда большее количество людей, чем код. Удачи Вам и добра )))
48. strange2007 143 09.08.18 13:23 Сейчас в теме
(47) Да, это позор, когда делаешь элементарные ошибки в переписках и я этого стыжусь, а не горжусь этим)))
49. starik-2005 2212 09.08.18 13:25 Сейчас в теме
(48)
и я этого стыжусь
Ну так учитесь не делать их, ведь процитированная мной часть Вашего сообщения - это второе простое предложение, связанное с первым союзом "и", перед которым, как всем известно (не, ну правда всем, ибо оное в школе проходят), ставится запятая.
50. spacecraft 09.08.18 17:08 Сейчас в теме
(46)
1С-вцы издадут целую главу рекомендаций, на тему как надо сокращать переменные. Ну а пока этого нет....

Вообще-то есть. Давно. Может не в полной мере, но все же.
https://its.1c.ru/db/v8std#content:-2145783193:hdoc
Светлый ум; +1 Ответить
53. Meistersinger 03.02.20 20:52 Сейчас в теме
(40)А последние достижения непременно должны работать на порядок медленнее предыдущих? Наверное, чтобы парк железа не застаивался? Вы представить себе не можете, насколько велика нагрузка на облачный сервер 1с. При несчастных 5 бухгалтерах в базе БП3, допустим. Мне страшно подумать, что будет происходить, если юзеров будет 20, 50, 100, что вполне обычно и немного, по нынешним меркам. Вот поэтому, многие и сидят на 7, по причине невозможности даже представить себе, во что может вылиться переход на управляемые формы. Так, для кого эти достижения современные? Или может вспомним достижение, на которое склонили всех поголовно, которое называется "расширения конфигурации", при включении которых можно получить абсолютно мертвую базу и оживлять ее при помощи перелива конвертацией, быстро накиданной на коленке всем известным способом?
54. starik-2005 2212 04.02.20 10:34 Сейчас в теме
(53) то, что типовые стали монструозными кусками г-на - так кто ж с этим спорит-то? Но управляемые формы тут ни при чем. Везде в современных продуктах испол зуется клиент-серверное взаимодействие - от веб-сайта самого простого и до многочисленных сервисов типа яндекс-карт. 1С - не исключение. Другое дело, что школьный комп сейчас быстрее парка устаревших серверов работает, поэтому так все у пяти пользователей и медленно - памяти мало на серваке (а если это файловая и без веб-сервера - вообще работать анриал), производительность сбалансированная, виртуалки, сервер скульный разнесен на отдельную виртуалку, венда дырявая уровня ПРО (если не хоум). Ну не будет это вменяемо работать, особенно на ксеонах кетайских первого поколения с низким IPC.

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

В финтехе все идет к транзакционным сервисам, в которых заявки и регчтся, а потом скоринг по ним бежит как джава-робот по бигдате.

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

Если у Вас бух "работает" с 1С - это скоро пройдет. Бух должен заниматься снижением налоговой нагрузки, в остальном система сама может: товар заводить не надо, он по ШК сам должен приехать, контрагенты тоже только ИНН, банк автоматом пришел-ушел, заявка на оплату должна руководителю в мобилу приехать и оттуда он ее должен утвердить или отклонить. Оборотку крутить - в чем смысл? Накладные по ЭДО, акт о расхождении туда же, дебиторка/крадиторка оттуда же и из банка - автоматом все уже может работать. Отчет о ДЗ и КЗ автоматом должен отсортированный по просрочке и периоду прийти всем, а там процесс урегулирования сам должен стартануть и письмо с претензией - шаблон - робот должен отправить и отрапортовать об этом.
55. Meistersinger 07.02.20 17:19 Сейчас в теме
(54) Вы это серьезно сейчас говорите? Про клиент-серверное взаимодействие? Были какие-то проблемы на 7.sql с ним может? Особенно допиленной на 1c++, всяких ToySQL, или напрямую - SQL DMO, ADOSql? Или вы думаете, что говно с кучей подзапросов, сделанное на скд не ушатывает сервер нагрузкой? Я Вам скажу по секрету, что оптимизатор запросов ms sql по-прежнему оперирует понятием 16 вложенных сущностей. А в любой типовой сущностей этих так много, что программист, не ориентирующийся в этой бсп может забыть как его зовут при отладке. А если еще вспомнить пр кэш, режимы совместимости, то поневоле задумаешься, а нужно ли все это. Просто делается все это как тренд, но по сути, вменяемым людям оно совершенно не нужно, как и нормальному бухгалтеру документы. Знавал я одного, который до упора в БЭС балансы рисовал сводными проводками, скрипты для которых был способен нарисовать сам. Он понимал что такое бухгалтерия. А снижением налоговой нагрузки занимается финдир и руководитель бухгалтерии, обычно. Это более к бизнес процессам, чем к ведению бухучета. Бизнесу не все равно, сколько работает процесс. У топ 10 Российских фармдистрибов в день выписывается по 20 000 документов и Ваши отложенные задания и асинхронные обработчики будут плавать вечность, которой нет, т.к. процесс непрерывный и круглосуточный. А новые полезные вещи типа ws и прочего, безусловно, следует изучать. да и расширения как идея очень хороши, только надо было приложить чуть больше усилий, перед их выпуском "в люди". Да и ЭДО СчфДоп, ДОП - тот еще геморрой, честно говоря. И ведь торговые площадки, активно это все использующие, сами регулярно вносят какие-то коррективы, за вполне себе сжатые сроки до внедрения. Это дает нам деньги на хлеб практически неиссякаемые, хватило-бы здоровья всем этим заниматься. А потребителю - денег, чтобы все это оплачивать. Разнесенные кластера серверов приложений и ms sql, раздельные массивы для системы, журнала транзакций, лок журнала и бд. Как это мило. Это и во времена разгула 7, в 98-2002 годах, было довольно монструозным, при тех мощностях. 7 на нынешних просто летают, кстати. А вот управляемые формы это лишняя, не нужная никому нагрузка на вычислительную часть сервера, ибо в теории, в клиентской части остается совсем немногое.
57. starik-2005 2212 08.02.20 16:35 Сейчас в теме
(55) Вы о другом говорите. Бух вообще скоро не нужен будет в части первички, главьух - про него и речь была - должен определять, что куда разнести, что как на расходы положить, чтобы меньше в бюджет заплатить лишнего - для этого его и взяли. И у него не должна голова болеть, как это потом в программе отрвзить, а сейчас болит и об этом, и о том, как потом проблемы исправить и желательно не через перепроведение документов, которое безо всяких управляемых форм может очень долго делаться (видял я, как народ все выходные последовательность восстанавливает ради одной корректировки, которая сделана началом периода - ну бред же, при этом УФ тут ни при чем).

Про 7ку я вообще не говорил - забыл уже, как страшный сон. Мир праху ее аместо с СОМ'ом и прочими устаревшими фичами.

А по поводу ожидания, то бизнес не оперативные сводки ждет. Для бизнеса важны P&L, Cash Flow и управленческий баланс, БДР и БДДС. Это бизнес готов ждать и по 10-15 дней после окончания месяца, при этом чаще всего получает он их к концу следующего месяца. Также для бизнеса важна ДЗ и КЗ, но это оперативная информация и раз в день извлечь ее и послать в воцап или на почту руководителям - труда не составляет.

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

Вообще, управляемые формы - это ровно то, что используется во всех современных решениях. Бэк на сервере генерит форму в html, передает ее на клиента, который отрисовывает ее в браузере. На сервер уходят только нужные данные (тут 1Снеги часто сами виноваты, используя контекстные вызовы, но иногда без них никак - и это большая архитектурная проблема 1С, т.к. в других системах объект целиком между клиентом и сервером не ездит каждый раз). И это общий и, предположу, единственный подход - просить у клиента только реакцию и отображать ему только нужные для этой реакции данные. Итог - взаиможействие клиента и сервера как бэкэнда и фронтэнда. И на клиенте тут 1С часто и не нужна, а на сервере пользователя вообще не должно колышить, что там стоит и как работает. Пользователю система должна вопрос задать, а он должен на него ответить - все. И это должно юыть не сложнее воцапа какого-нить - без лишней инфы и с гарантированной доставкой запроса пользователю и его реакции серверу.
59. Meistersinger 09.02.20 23:10 Сейчас в теме
(57)Что-же Вы все время про устаревшие и не устаревшие фичи. Если фича еле ползает на свежем бодром железе, какой прогрессивной ее не назови, по факту она - чисто для развлечения программиста. на нормальном производстве, в нормальном бизнесе, востребована не будет. SQL DMO прекрасно продолжает работать и поныне. Со времен 6.5 и Sybase-предшественника MS SQL На любой версии SQL сервера. В чем его устарелость, я не понимаю? Давайте говорить о актуальности! Или Вам просто скучно и нужны свежие? Если да, то какие могут быть вопросы, если нет, то объективно, не вижу причин не использовать вьюхи, хранимые процедуры для внутренних систем. Кстати, с точки зрения оперативного учета, 7 актуальна и поныне. Ей не нужна поддержка 1С. Для нее даже библиотеку на современные SQL Server пропатчили. Системы, смотрящие в интернет любой разумный дистриб не делает онлайн, или на фронт ставит своего рода буфер, для дозированного информационного наполнения сайта на битриксе, или на чем-нибудь еще. А WS и XDTO это всего-лишь интерфейс. Пойдем дальше. Была конвертация 2. 2.1.8.2(2.1.8.3?) - последняя ее версия, после чего ее успешным образом забросили. Она умерла так толком и не родившись, с методической точки зрения. Единственная книжица по ней занимает от силы 100 страниц, курсы по ней то открывались, то закрывались. Знания получались опытным путем и коллективным разумом! И вот, привет, родилась конвертация 3, ничего общего с предшественницей не имеющая абсолютно. Это современна фича, или не очень ,мне любопытно? Она опять будет столь-же "глубоко" документирована, или еще менее? А Кэш Флоу и Пиэнэль, где не посмотри, делается путем титанических подготовительных работ, в бэкграунде, не важно, на чем он строится, важна его быстрая доступность, допустим, из полноценного Олап Куба (еще одна устаревшая технология, видимо) А то, что воротят в скд, если дело касается как сбора, так переработки и представления информации, в лучшем случае, просто работает. Да, с кажущейся гибкостью настроек. А по факту - ну не знаю. Все это, если посмотреть внутреннюю кухню работает безумно криво, с точки зрения оптимизации. И обновление железа не самоцель. Вот, еще помню, фронт, написанный на BCPP с Btrieve базой, на новелле 3.12. Он способен был работать с 2 стонями пользователей на археологически устаролом железе. О местоположении сервера можно было даже успеть забыть, до возникновения проблем, аптайм-годами, если сервер был подключен к бесперебойнику хорошему. И никто не жаловался на то, что надо срочно обновить железо. Но стоило только соскочить на 1с, сначала 20 юзеров было проблемой, потом перешли на MS SQL и 60 юзеров стали проблемой, но поднатужились, написали реструктурисацию средствами ms sql, и взлетело со 150 пользователями, потом поставили гибкие блокировки Софтпоинт, уже без меня и летало с 300. Покажите мне вменяемое современное железо, на котором УТ с управляемыми формами работает с 3 сотнями пользователей, какойва цена вопроса?

Короче говоря, мы друг друга поняли, засим, прекращаю этот бессмысленный монолог ,вернее 2 монолога. Бухгалтер по-прежнему должен ориентироваться в бухучете, который преимущественно описывает взаимоотношение счетов и принцип двойной записи и применимость плана счетов и законодательства к конкретному бизнесу. Операторы бухгалтерии, выписывающие документы - не бухгалтеры. Я гораздо более бухгалтер, чем они, Спасибо, Всего наилучшего!
60. starik-2005 2212 10.02.20 08:24 Сейчас в теме
(59) фича плохо ездит на действительно хорошем железе только тогда, когда это железо не настроено или настроено плохо.

Да, в 8.3 (как и в 7.7) есть серьезный архитектурный штраф, и да - управляемые формы рендерятся на сервере в бэкэнде и транспортируются для отображения на клиент целиком со всеми данными. Но это говорит о том, что не нужно в один документ вываливать тысячи строк - используйте регистр и динамический список, например. В том же вконтакте/фейсбуке никто сразу все с сервера на клиент не берет - понемногу, последовательно, по мере прокрутки контента. И в 1С должно быть так же - по чуть-чуть...

А если возвращаться к 7.7, то бещ sql - это очень медленно при извлечении последовательности данных. И трудоемкость разработки в ней куда выше, чем в современных фреймворках джавы (и даже снегопаты не делают из нее IntelliJ). А если с SQL, то и PHP фору даст с ларавелом с учетом необновляющейся части регламентированных отчетов, которые только и являются преимуществос 1С перед другими системами. Я вчера тут посмотрел Odoo - заставляет задуматься...
Meistersinger; +1 Ответить
62. Meistersinger 10.02.20 17:44 Сейчас в теме
(60)Ну, про курсоры это понятное и обоснованное заявление. Об этом еще в Платинум мне объясняли, видя мое недоумение, по поводу их отсутствия. На Оракле, кстати, тоже стараются не злоупотреблять. Но какой смысл в таком управляемом приложении: "управляемые формы рендерятся на сервере в бэкэнде и транспортируются для отображения на клиент целиком со всеми данными." И в разделении областей действия, при этом. Загадка. А еще, я хочу спросить, отчего так неряшливо с кэшем все происходит. И откуда такие безумные утечки памяти. Семерка, безусловно, не панацея от всех бед, но если-бы передо мной поставили задачу перевести высоконагруженную базу с 7 на 8, я-бы отказался. Устарившие технологии JSon, ну надо же, я ими еще не овладел, а они уже устаревшие. Основная претензия моя лежит к архитектуре БД, у условным ссылкам и общей нереляционности баз данных 1С 8-х версий, которые вынуждена хранить сейчас в своих таблицах черт знает что. И это еще хуже ,чем курсоры. Скорость и удобство разработки безусловно важна, но она не должна вытеснять интерес конечного потребителя. Он не должен становиться заложником ситуации. Ну и маркетинговые фишки, реализованные кое-как тоже мало кому нужны. Хотя, привыкаешь к хорошему быстро, даже если оно жестко глючит. Попробовав расширения, я мечтаю перевести свои БП2 на 3 редакцию, и перенести свои изменения в расширения конфигурации,но при этом понимаю, с чем придется столкнуться. Бизнес не платит за работу, ради ее самой.
64. starik-2005 2212 10.02.20 18:25 Сейчас в теме
(62) устарели не json и xml, а мктоды раьоты с ними в 1С - старые опенсорсные либы, которые уже не используются почти, а в 1С перепилить на другие либы получается непросто, ибо все треснет по швам. Но сейчас обмен уходит от xml в json и даже csv, а совсем у продвинутых - в протобуф, который, по-сути, является аналогом типизированного файла из паскаля - там файл можно было открыть по типу, а тип - структура (список полей с типом).
63. Meistersinger 10.02.20 18:03 Сейчас в теме
(60) "используйте регистр и динамический список, например"

Хорошо-бы, но для 1сника, который учился по методичкам, это будет сложно. Я пока не знаю способа сделать это штатными средствами. Тупить на документе с 30 000 строк, при отображении - это пожалуйста) Причем как в 7, так и в 8. Нарисовать это посредством Transact SQL я могу, отобразить в 1с тоже, но это не будет объектная модель 1С, увы.
61. starik-2005 2212 10.02.20 11:18 Сейчас в теме
(59)
Покажите мне вменяемое современное железо, на котором УТ с управляемыми формами работает с 3 сотнями пользователей, какойва цена вопроса?
Я полностью солидарен с Вами на тему того, что 1С - это сейчас не самое лучшее, что есть на свете (но и не смое худшее). То, что оперативный учет можно на машине с 20-летним процессором (и даже с 30-летним) поднять - тоже не спорю - первопни на хороших системах могут тысячи пользователей отлично обслуживать, но там нет шифрования трафика и прочих для них ресурсоемких моментов, которые в современных ОСях типа "искаропки".

Все в современном мире стремится к уменьшению затрат. Железо стоит не дешево, но еще дороже стоит время разработчика. И все пытаются сократить время разработки, но пока получается плохо - только хакатоны позволяют получить прототип за вменяемое время, а в аджайле прототип - это уже хорошо. И сделать обмен на 1С сейчас не легче, чем на Java реализовать ETL для любой шины данных (на 1С даже сложнее ввиду ограниченности самих 1С-негов и устаревших технологий для работы с XML и JSON, не говоря уже о протобуфе, который в 1С придется вручную записывать в новые объекты работы с памятью, в то время, как в большинстве других систем достаточно заинклюдить либу и получить весь спектр методов работы с этим делом).
Meistersinger; +1 Ответить
56. Meistersinger 07.02.20 17:37 Сейчас в теме
(54) К слову сказать, нет ничего из перечисленного Вами, что нельзя было-бы реализовать в 7. Да, в 8 появились любопытные методы, например "НайтиСтроки" - надо рисовать класс на 1с ++, структура, соответствие тоже весьма полезная штука, да и в самих html формах нет ничего плохого. Демон таится в деталях. Обработчики передачи контекста с серверной на клиентскую часть и обратно. Да, кстати, и управление блокировками, в теории, более гибкое чем у старушки 7, но на практике, думаю, что софтпоинтовская приблуда будет по-прежнему на высоте. А если из 7 выпилить все обработчики и перенести их во вьюхи, хранимые процедуры, то вообще получается прекрасный образчик тощего клиента, единственное, холодильник не захочет с ним работать и в браузере не запустишь. И это не тот случай, когда можно сказать, что я противлюсь прогрессу, отнюдь, просто происходит подмена целеполагания. Если раньше, развитие систем было клиенториентированным, то сейчас-чисто маркетинговая чепуха, на 80% 20% полезностей я не отрицаю.Никто, кстати, не отменял такой вещи как контроль, который в ваших бизнес процессах может запросто заблудиться и стать абсолютно недоступным для оператора учета.
58. starik-2005 2212 08.02.20 16:54 Сейчас в теме
(56) так клиенту 1С не нужна - ему скорее бот нужен в телеге или еще где. Пользователь фактически должен проверить, как система отработала - сравнить первичку с результатом загрузки. Вообще, что там на сервере - класть банан на это пользователю. У него должна быть кнопка. ...

Вот, например, склад. Там персонал делает три вещи: раскладывает пришедшее, складывает уходящее и считает периодически оставшееся. Зачем ему там 1С? Ему там ТСД нужен на андройде с мобильным приложением (пусть и на 1С - пофиг на чем), где он эти три операции делать сможет. Вот у него там задание на размещение, задание на сборку и задание на инвентаризацию, в них стелаж и полка, для первых двух наименование и количество. Подошел, щелкнул ШК, положил/взял/посчитал и дальше пошел класть/брать/считать. Все. И как все взял/поклал/посчитал - вылезла бумага их принтера - упаковочная этикетка, которую радо на коробку наклеить. И инфа о сборке должна как в макдачнице быть - на могиторе со мборочным номером и, чтобы мовсем по приколу было, с результатами командного зачета - кто больше собрал/разложил/посчитал и кому медаль дадут...

На производстве ровно как в макдачнице должно быть - клиент набрал бургеров, они попали в заказ, заказ в части дифицита попал в производство, персонал пожареные котлеты положил в нужный бургер (а ненужные бургеры производство не шлепает - ориентируется на пустые ячейки - канбан у них там). И все это на мониторчиках, на которых типа нажарить котлет, нарубить травы, нарезать булок, напихать первое и второе в третье, положить в коробочку и засунуть в ячеечку. И что там на сервере - пофиг, а вот на клиенте - телевизор с тачскрином, на котором это все отрисовывается. Выполнил задачу - нажал кнопку. Если где-то все не так - значит это не эффективно, значит более эффективный бизнес, делающий то же самое, вытеснит неэффективный в результате конкуренции, как это делают уже интернет-магазины в некоторых сегментах.
51. acanta 15.08.18 13:46 Сейчас в теме
По аллегории Лукьяненко Иные - это аутисты, которые объединились и нашли себя в нашем мире, а сумрак - депрессия/неспособность вести себя как все. Короче, всем выйти из сумрака.
52. Meistersinger 03.02.20 20:41 Сейчас в теме
Преимущества? Серьезно? Сижу и смотрю на БП3, у которой обновились БСП, изменился режим открытия форм. Вспоминаю сисадмина, который меня спрашивает ,почему БП3 постепенно отжирают в 10 раз больше памяти, чем БП2. И работает, при этом, раза в 3 медленнее, в-среднем. Что-же мне ему ответить? Какие преимущества привести? Может бухам стало удобнее работать? Или главное не это? Может, в миллиардах процедур стало легче разбираться? Теперь, помимо синтаксиса, нужно иметь скилл знания содержимого БСП, или хотя-бы приблизительно, где чего искать. Год назад склоняли всех к "такси", теперь его изнасиловали и бухи пытаются найти былую функциональность, тщательно спрятанную от их глаз. Чего ради, и зачем? А я ковыряю старые обработки, которые внезапно перестали работать. Видимо, не модно стало поддерживать старую функциональность? Или может, вспомнить, косяки платформы предыдущей, которые в новой решили "пофиксить" и внезапно оказалось, что идентификаторы объектов отъехали? Я такого за всю свою сознательную жизнь не упомню, со времен обновления конфы бд "не потомка" в 7. Так где преимущества? xml формы преимущества? Вот в это верю, что стало хотеться сделать, чтобы на любом холодильнике могло взлететь. Но много-ли людей работают в 1с на планшетах?
alex-l19041; +1 Ответить
Оставьте свое сообщение

См. также

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

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Рассмотрены возможности произвольного использования стандартных функций, вызываемых из меню платформы "Все функции" - "Стандартные" (Активные пользователи, Журнал регистрации, Поиск ссылок на объект, Проведение документов ...).

19.06.2015    112461    ekaruk    128    

Процедура генерации отдельных элементов формы для даты и времени

Работа с интерфейсом v8::УФ 1cv8.cf Бесплатно (free)

Развиваю тему статьи "Раздельный вывод частей даты на форму без программирования" - на этот раз реализовал процедуру для общего модуля, которая из элемента формы реквизита с типом "Дата" генерирует отдельный элемент для времени и выполняет все шаги, указанные в исходной публикации

03.10.2020    496    drmaxart    0    

Рендеринг элементов управляемого интерфейса

Работа с интерфейсом v8 v8::УФ Россия Бесплатно (free)

Реализация отображения всего состояния формы проще, чем работа по изменениям. Однако использование идеи разделения алгоритмов на программные слои MVC и построения реактивных систем позволяет получить не только простые и масштабируемые решения, но и производительные интерфейсы. Рассмотрим примеры таких реализаций на основе использования фреймворка «Управление состоянием»: Информационная надпись, Заголовок формы, Свертываемая группа, Отключаемые панели.

22.09.2020    2529    kalyaka    5    

Переопределение представления ссылочного значения

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Переопределение представления ссылочного значения

17.09.2020    2231    sam441    15    

Полезности применения СКД Промо

Практика программирования Работа с интерфейсом v8::УФ v8::СКД УТ10 Россия Бесплатно (free)

Нюансы при работе из СКД на программном уровне.

11.04.2012    51997    logarifm    42    

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

Работа с интерфейсом v8::УФ Бесплатно (free)

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

14.08.2020    2465    DrZombi    14    

Использование флажков в динамических списках

Практика программирования Работа с интерфейсом v8::УФ Бесплатно (free)

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

04.08.2020    3078    nekit_rdx    23    

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя Промо

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    24469    Tatitutu    12    

Обработка нажатия клавиши

Работа с интерфейсом v8::УФ Бесплатно (free)

Один из способов обработки события нажатия клавиши.

10.06.2020    2586    RotaninV    7    

Форма выбора (подбор) в управляемых формах

Практика программирования v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    21752    user5300    16    

Английский интерфейс для 1С: Управление торговлей. Перенос перевода из 1С: ERP

Работа с интерфейсом v8::ОУ УТ11 Россия УУ Бесплатно (free)

Полноценный англоязычный интерфейс для 1С: Управление торговлей. Я передаю идею, а пользоваться или нет, решайте сами. Надеюсь, эта статья ускорит появление продукта 1C:Trade Management 11.

05.05.2020    2178    _Ramzes    7    

Видеодемонстрация применения Теста-центра для нагрузочного тестирования конфигураций Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

16.09.2012    35691    Aleksey.Bochkov    29    

Перенос инструкций из word во встроенную справку 1С с сохранением картинок и форматирования

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Делюсь простым и удобным способом переноса справки/инструкций из ворда (и не только) во встроенную справку 1С с сохранением картинок и форматирования.

22.04.2020    4526    77dream77    21    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

18.02.2020    4897    randomus    19    

[Шпаргалка] Свой диалог выбора типа значения (элемента)

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Для реквизита составного типа необходимо ограничить список выбора типов.

18.02.2020    3580    rpgshnik    6    

Хранение и редактирование дополнительных параметров в регламентированном отчете. Для начинающих. Промо

Работа с интерфейсом v8 БП2.0 УПП1 БУ Бесплатно (free)

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

22.01.2014    20594    KapasMordorov    4    

Простой и красивый интерфейс

Работа с интерфейсом Мобильная разработка v8::Mobile Бесплатно (free)

Разработчики мобильных приложений на платформе 1С сталкиваются с проблемой адаптации сгенерированного платформой интерфейса под удобство использования. О том, какие приемы помогут сделать интерфейс красивым и удобным, на конференции Infostart Event 2019 Inception рассказал руководитель отдела мобильной разработки компании «1С-Рарус» Никита Бакшеев.

30.01.2020    12595    Baksheev-Nikita    33    

СКД. Шаг 3. Используем макеты для оформления отчета

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.01.2020    15377    aximo    14    

Добавление собственного поля и состояния в настройки доступности по состоянию в 1С:Документооборот

Практика программирования Работа с интерфейсом v8 ДО Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного поля и состояния в функционал настройки доступности по состоянию в 1С:Документооборот.

30.12.2019    4567    pavelpribytkin96    2    

Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2a). Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

В табличных документах 1С 8 имеется отличная возможность использования группировок, но управление уровнями группировок через контекстное меню не очень удобное. В своих отчетах для управления уровнями группировок я использую маленькие кнопочки на поле табличного документа - это намного удобнее и быстрее, чем через контекстное меню.

09.04.2011    46258    mtv:)    74    

[СКД] Вывод картинки в результат любого отчета на СКД

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

09.12.2019    9149    John_d    16    

Лайфхаки 1С. Настройка списков (Часть 3)

Работа с интерфейсом v8 Бесплатно (free)

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

03.12.2019    12580    VachKirp    14    

В новой платформе пропала кнопка "Печать". Имитируем БСП

Работа с интерфейсом v8 Россия Бесплатно (free)

"Приятным" сюрпризом для многих пользователей 1С стало то, что при обновлении платформы (начиная с 8.3.15) полностью поменялся интерфейс. Можно долго спорить о целесообразности этого новшества, но самым главным минусом стало то, что пропали стандартные кнопки на панели инструментов. Разработчики предполагают повсеместное использование БСП, но что делать тем, кто давно и успешно использует самописные конфигурации, в которых формирование печатной формы происходит по ТабДок.Показать(), и не желает их "утяжелять"? Добавим общую форму с нужными нам кнопками.

03.12.2019    9006    Vlan    43    

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

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

27.07.2012    32221    milkers    10    

Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Вносим изменения в типовые формы объектов (документы, справочники, журналы, обработки, общие формы). Не снимая с поддержки эти формы. Создаем программно элементы из общего модуля. Для примера рассмотрю добавление колонки "Скрепка" в форму списка документа. Если к документу привязан файл, то в списке в новой колонке должна отображаться "скрепка".

12.11.2019    11068    John_d    24    

ELK. Время изумительных историй!

Журнал регистрации Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Всем привет! Сегодня хочу рассказать вам несколько полезных историй про то как нам помог Elastic search в связке с Kibana. Про сам Elastic рассказывать не буду, уже все давным давно описали и до меня. Все обычно говорят что это полезно, это классно. В то же время, очень мало кто рассказывает про практические ситуации: когда и как помог Elastic. Итак, начнем.

31.10.2019    8859    slozhenikin_com    27    

Изменение макета в карточке номенклатуры(УТ 11, КА 2)

Практика программирования Работа с интерфейсом v8::УФ ERP2 УТ11 КА2 Бесплатно (free)

Краткая памятка по выведению добавленного реквизита в справочнике Номенклатура в стандартную карточку номенклатуры в УТ 11, КА 2, ERP 2.

24.10.2019    4481    darkultro37    4    

Рабочее место кассира для touch-screen и программируемой клавиатуры продавца в «1С: Розница» Промо

Работа с интерфейсом v8 Розница Бесплатно (free)

Вашему вниманию предлагается текст одного из технических проектов «1С: Розница 8», он описывает процесс разработки интерфейса РМК, с которым, нынче, работают кассиры очень многих магазинов.

29.11.2012    46664    aavolkoff    50    

Создание асинхронных виджетов

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    13048    YPermitin    19    

Формы. Трудности программной работы

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

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

06.10.2019    11858    YPermitin    31    

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Статья рассчитана на пользователей или программистов, которые только начинают работать с 1С, для максимально быстрого ознакомления с интерфейсом программы. В статье приведены лайфхаки, которые позволят вам быстро и эффективно научиться настраивать отчёты и печатные в среде программных продуктов 1С. Полученные знания значительно упростят взаимодействие с интерфейсом 1С и повысят продуктивность работы оператора.

02.10.2019    12651    VachKirp    10    

Бухгалтерия предприятия 3.0 интерфейс, аналогичный 1С:Бухгалтерии 7.7; Промо

Работа с интерфейсом v8 БП2.0 Россия Бесплатно (free)

Бухгалтерия предприятия, редакция 3.0, версия 3.0.14. Добавлена возможность использовать интерфейс, аналогичный 1С:Бухгалтерии 7.7;

20.09.2012    37290    dour-dead    18    

СКД. Отчеты с картинками

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Бесплатно (free)

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    21677    YPermitin    40    

Добавляем виджет "Задачи от меня" в Документооборот 2.1

Практика программирования Работа с интерфейсом v8 v8::Бизнес-процессы ДО Россия Бесплатно (free)

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    7642    Sergey_Borisovi4    3    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    51798    rpgshnik    63    

Выбор вариантов отчета в "Управление торговлей" ред. 11 Промо

Работа с интерфейсом Учет ТМЦ Учет ТМЦ v8 УТ10 Россия БУ Бесплатно (free)

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

27.05.2012    46805    1cUserAndrew    25    

[Механизм интерфейса] Часы

Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    9959    rpgshnik    36    

Произвольная начальная страница через расширение (программно)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

14.08.2019    12317    nagaitseff    15    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    11230    IvanAT1981    15    

Создаем отчет с заданной периодичностью на СКД Промо

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Россия Бесплатно (free)

Учимся создавать отчет с заданной периодичностью с использованием СКД.

16.04.2012    71367    Lyns_owner    36    

Форма отчета СКД

Работа с интерфейсом v8::СКД 1cv8.cf Бесплатно (free)

Описание объекта ОбщиеФормы – ФормаОтчета.

01.08.2019    11585    vasilev2015    5    

БСП: Дополнительные отчеты и обработки - одна обработка, несколько форм

Практика программирования Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Как в одной дополнительной обработке разместить несколько форм с типом команды "ОткрытиеФормы"?

29.07.2019    10921    dsdred    9    

Пользовательские настройки системы компоновки данных

Практика программирования Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

09.07.2019    27159    ids79    2    

Практика регулярных выражений в 1С или "парсим неудобные форматы" Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

В продолжение статьи Использование регулярных выражений (RegExp) в 1С8.х. Углубляемся в практику использования регулярных выражений в 1С. Основы работы с регулярными выражениями хорошо описаны в указанной публикации. А я попробую ответить на вопрос "почему именно регулярные выражения?" на примере конкретной рабочей задачи.

26.10.2011    29935    1cspecialist    33    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    42146    YPermitin    52    

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free)

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

14.05.2019    19986    Viktor_Ermakov    8    

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

Практика программирования Работа с интерфейсом v8 КА1 УТ10 УПП1 Россия Бесплатно (free)

В этой статье я хочу рассмотреть задачу, которая довольно часто возникает у начинающих (и не только) разработчиков, адаптирующих типовые конфигурации (УТ, КА, УПП) на предприятиях торговли. Речь пойдет про отображение остатков в форме выбора серий номенклатуры при подборе в документы. Это актуально в тех случаях, когда не ведется партионный учет по сериям, либо когда документы вводятся неоперативно и нет возможности воспользоваться волшебной кнопкой "Заполнить и провести". На первый взгляд задача банальна, но я хочу показать некоторые "грабли", на которые часто наступают новички в процессе ее реализации, а также сопоставлю алгоритмы решения на платформе 8.1 и 8.2.

20.01.2011    32198    practik1c    19    

Свой макет оформления отчета

Работа с интерфейсом v8 v8::СКД Россия Бесплатно (free)

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    13453    olegpkc    5    

Как добавить типовую форму для СКД (для начинающих) (1С 8.3, управляемые формы)

Инструментарий разработчика Работа с интерфейсом v8 v8::УФ v8::СКД Бесплатно (free)

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

25.03.2019    13603    ellavs    9    

Раздельный вывод частей даты на форму без программирования

Работа с интерфейсом v8::УФ 1cv8.cf Бесплатно (free)

Небольшой лайфхак для повышения удобства редактирования пользователем полей с типом "Дата".

12.01.2019    9231    drmaxart    20