Формирование синонима переменной из идентификатора

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

Разработка - Практика программирования

Синоним Создание синонима Полезные функции

Функция формирует синоним переменной из идентификатора, как это делает платформа 1С8.

Функция формирует синоним переменной из идентификатора, как это делает платформа 1С8.
Используется при визуализации таблицы значений, давая читабельные для пользователей названия колонок:

  • "СуммаБезНДС" => "Сумма без НДС",
  • "СуммаЗадолженностиКонтрагента" => "Сумма задолженности контрагента",
  • "СинонимПеременной" => "Синоним переменной".

Для 7.7 переделывается легко.

// Формирует синоним переменной.
// Пример: на входе "ИмяПеременнойАБВГ", на выходе "Имя переменной АБВГ"
//
// Параметры
// ИмяРеквизита - Строка. Имя переменной, имя колонки таблицы
//
// Возвращаемое значение:
// Строка - Представление переменной
//
Функция СформироватьСиноним(ИмяРеквизита)
    
    Перем Синоним, ъ, Символ, ПредСимвол, СледСимвол, Прописная, ПредПрописная, СледПрописная, ДлинаСтроки;
    
    Синоним = ВРег(Сред(ИмяРеквизита, 1, 1));
    ДлинаСтроки = СтрДлина(ИмяРеквизита);
    Для ъ=2 По ДлинаСтроки Цикл
        Символ = Сред(ИмяРеквизита, ъ, 1);
        ПредСимвол = Сред(ИмяРеквизита, ъ-1, 1);
        СледСимвол = Сред(ИмяРеквизита, ъ+1, 1);
        Прописная = Символ = ВРег(Символ);
        ПредПрописная = ПредСимвол = ВРег(ПредСимвол);
        СледПрописная = СледСимвол = ВРег(СледСимвол);
        
        // Варианты:
        Если НЕ ПредПрописная И Прописная Тогда
            Синоним = Синоним + " " + Символ;
        ИначеЕсли Прописная И НЕ СледПрописная Тогда
            Синоним = Синоним + " " + Символ;
        Иначе
            Синоним = Синоним + Символ;
        Конецесли;
    КонецЦикла;
    
    Возврат Синоним;
    
КонецФункции // СформироватьСиноним()

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. DrAku1a 1313 21.11.12 02:55 Сейчас в теме
А вот обратное преобразование:

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


P.S. ъ - как счетчик цика... мда... оригинально.
GATTUSO; anchovy; awk; Rustig; shakmaev; +5 Ответить
16. v.l. 21.11.12 17:32 Сейчас в теме
(1) DrAku1a, гиде взял? ))

Вот пару строк для этого: (8-ка)

	Синоним = ТРег(ИмяРеквизита);
	Синоним = СтрЗаменить(Синоним, " ", "");
	
	Возврат Синоним;
17. andrewks 1273 21.11.12 18:34 Сейчас в теме
(16) что она даст для "Цена закупки" ?
18. v.l. 21.11.12 20:23 Сейчас в теме
(17) andrewks, ну если пошагово, то так:

    Синоним = ТРег(ИмяРеквизита);            | "Цена Закупки"
    Синоним = СтрЗаменить(Синоним, " ", ""); | "ЦенаЗакупки" 
Rustig; Serj1C; +2 Ответить
21. andrewks 1273 21.11.12 20:31 Сейчас в теме
(18) допустим. а для "Сумма НУ" ?
24. DrAku1a 1313 22.11.12 02:27 Сейчас в теме
(16),(18) блин... протупил я... это не обратное преобразование - это аналог получается... :-)
(20) По-идее правильно преобразовывать: "Слава КПСС" <-> "Слава_КПСС", а "Цена закупки" <-> "ЦенаЗакупки", так что, (16) - не совсем верно.
26. v.l. 22.11.12 12:17 Сейчас в теме
(24) DrAku1a, Трям!

А это идея - аббревиатуры отделять знаком подчёркивания.
Да и подчёркивание я не учел в начальной процедуре.
2. nelse 21.11.12 04:09 Сейчас в теме
Мура
GATTUSO; sarumanchik; shakmaev; RomanUzmov; wolfsoft; +5 Ответить
3. DrAku1a 1313 21.11.12 08:05 Сейчас в теме
(2) Иногда требуется и так поизвращаться...
4. bulas 186 21.11.12 08:23 Сейчас в теме
Если для счетчика вместо ъ использовать Ё, то работает быстрее.
kirinalex; zfilin; sarumanchik; Rustig; SeiOkami; Артано; +6 Ответить
6. v.l. 21.11.12 12:41 Сейчас в теме
(4) bulas, многолетние опыты британских учёных подтвердили использование именно маленького твёрдого знака "ъ" вместо заглавной "Ё".
5. wolfsoft 2421 21.11.12 11:43 Сейчас в теме
Для ъ=2 По ДлинаСтроки Цикл
<...>
СледСимвол = Сред(ИмяРеквизита, ъ+1, 1);

Дальше можно не смотреть.
GATTUSO; sarumanchik; Serj1C; +3 Ответить
7. v.l. 21.11.12 12:43 Сейчас в теме
(5) wolfsoft, предложи свой вариант, мне интересно.
10. wolfsoft 2421 21.11.12 14:01 Сейчас в теме
(7) лень копаться, навскидку, чтобы не было выходов за границы строки, например так:

Функция СформироватьСиноним(ИмяРеквизита)
	
	Перем Синоним, ъ, Символ, ПредСимвол, СледСимвол, Прописная, ПредПрописная, СледПрописная, ДлинаСтроки;
	
	Синоним = ВРег(Сред(ИмяРеквизита, 1, 1));
	ДлинаСтроки = СтрДлина(ИмяРеквизита);
	
	Для ъ=2 По ДлинаСтроки Цикл
		
		Символ = Сред(ИмяРеквизита, ъ, 1);
		ПредСимвол = Сред(ИмяРеквизита, ъ-1, 1);
		//СледСимвол = Сред(ИмяРеквизита, ъ+1, 1);
		
		Прописная = Символ = ВРег(Символ);
		ПредПрописная = ПредСимвол = ВРег(ПредСимвол);
		//СледПрописная = СледСимвол = ВРег(СледСимвол);
		
		// Варианты:
		Если НЕ ПредПрописная И Прописная Тогда
			Синоним = Синоним + " " + Символ;
		//ИначеЕсли Прописная И НЕ СледПрописная Тогда
		//	Синоним = Синоним + " " + Символ;
		Иначе
			Синоним = Синоним + Символ;
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат Синоним;
	
КонецФункции // СформироватьСиноним()
Показать
12. v.l. 21.11.12 17:23 Сейчас в теме
(10) wolfsoft, вроде ошибок не было. СледСимвол в последней итерации возвращает пустую строку (8-ка). В 7.7 нет возможности попробовать.
13. andrewks 1273 21.11.12 17:26 Сейчас в теме
(12) Сред() не будет ругаться на выход за границы, а просто вернёт пустоту. это ж не си/паскали вам
19. wolfsoft 2421 21.11.12 20:28 Сейчас в теме
(12) в (13) уже ответили

(16) у нас прямо конкурс решений образовался :)
"ленивый" вариант для обратного преобразования

Функция СформироватьРеквизит(Синоним)
	
	Стр = СтрЗаменить(Синоним, " ", Символы.ПС);
	СтрДлина = СтрЧислоСтрок(Стр);
	
	ИмяРеквизита = "";
	Для Индекс = 1 По СтрДлина Цикл
		
		ТекСтр = СтрПолучитьСтроку(Стр, Индекс);
		
		Если ПустаяСтрока(ТекСтр) Тогда
			Продолжить;
		КонецЕсли;
		
		ИмяРеквизита = ИмяРеквизита + ВРег(Лев(ТекСтр, 1)) + Сред(ТекСтр, 2);
		
	КонецЦикла;
	
	Возврат ИмяРеквизита;
	
КонецФункции // СформироватьРеквизит()
Показать
20. v.l. 21.11.12 20:29 Сейчас в теме
(19) О! А это уже универсальное решение для любой платформы. Респект и уважуха.

Конкурс! да! профинтерес размяться )))

Я вот думаю над параметром "ЦенаСНДС", чтобы его в "Цена с НДС" перевести, наверно, составить словарь односимвольных слов "С", "а", "в", "к". Если массив прописных букв начинается с этого слова, отедалить её как слово.

"СлаваКПСС" тогда сработает как "Слава к ПСС", зато "СуммаСНДС" будет правильно - "Сумма с НДС"!

----

upd: Хотя нет, Символы.ПС - это ж для 8-ки, а в 7.7 РазделительСтрок.
Да и отталкиваться тогда удобнее от пробелов.
25. ShantinTD 88 22.11.12 10:27 Сейчас в теме
(20) про СлаваКПСС - улыбнул. Спасибо.

не в тему:
Разбор предложения: Дочь генерала.
Дочь - "кто?", генерала - "что делала?".
29. Rustig 1369 23.11.12 21:02 Сейчас в теме
(20) надо создать слова-исключения, передавать через параметр, выделять из строки целиком, как раз кажется так и реализовано в (27)
22. andrewks 1273 21.11.12 20:32 Сейчас в теме
(19) wolfsoft, вот это нормально. сам именно такой алгоритм утвердил "в голове", да писАть лень было )
8. SPID 21.11.12 13:02 Сейчас в теме
А что вернет по идентификатору СуммаСНДС? Не тестировал, но кажется получается "Сумма СНДС".
11. v.l. 21.11.12 17:18 Сейчас в теме
(8) SPID, да так и вернёт "Сумма СНДС"
9. Поручик 4375 21.11.12 13:28 Сейчас в теме
Я бы вместо маленького твёрдого знака использовал большой мягкий Ь
anchovy; ShantinTD; +2 Ответить
14. andrewks 1273 21.11.12 17:27 Сейчас в теме
не думал, что подобного рода вспомогательные процедурки, коих пишешь по несколько за день, тянут на публикацию.
GATTUSO; romign; ilov_boris; tolyan_ekb; +4 Ответить
15. v.l. 21.11.12 17:28 Сейчас в теме
(14) andrewks, да вот сам не думал )))
23. v.l. 21.11.12 20:34 Сейчас в теме
Чуть позже, дома проверю)))
27. sstar90 22.11.12 14:59 Сейчас в теме
Внесу и свою лепту - в прикрепленной обработке функции преобразования, которые я использую.
Результат их выполнения:
"Сумма_С_НДС", "СуммаСНДС" => "Сумма с НДС"
"Сумма с НДС", "Сумма _ с НДС" => "СуммаСНДС"
Прикрепленные файлы:
ВнешняяОбработка1.epf
28. v.l. 22.11.12 17:02 Сейчас в теме
30. eugen91 25.11.12 01:33 Сейчас в теме
да, по мне можно было красивее найти выход
31. v.l. 26.11.12 13:58 Сейчас в теме
32. maloi_a 26.11.12 14:18 Сейчас в теме
Проверка на прописные буквы делается просто:

// 7.х
Прописная = Символ>="А" И Символ<="Я" ИЛИ Символ>="A" И Символ<="Z";
// 8.х
Прописная = КодСимвола(Символ)>=КодСимвола("А") И КодСимвола(Символ)<=КодСимвола("Я")
ИЛИ КодСимвола(Символ)>=КодСимвола("A") И КодСимвола(Символ)<=КодСимвола("Z");
33. v.l. 26.11.12 15:04 Сейчас в теме
(32) maloi_a, точно. Для 7.7 сгодится. Но ведь в 8-ке куда проще написать
Прописная = Символ = ВРег(Символ);
. С латиницей понятно, там действительно алфавит находится в одной последовательности, не прерываясь.
Что же делать с национальными кодировками? Украинский, белорусский, казахский языки имеют свои буквы, которые не вписываются в диапазон А..Я, они часто стоят отдельно. Та же Ё и ё не вписываются в диапазон "а".."я", они раньше. Так же и с "Ґ" и "ґ", "Є" и "є", "І" и "і", "Ї" и "ї", "Ў" и "ў". Да и КодСимвола("Z") ведь постоянный, можно просто заменить на диапазон 0x41..0x5a. Правда? )))

За подсказку спасибо, в 7.7 код не тестировал, честно.
34. maloi_a 26.11.12 15:49 Сейчас в теме
(33)
Всё правильно.
Да и с русским языком тоже проблема с "Ё".
В 7.х простое сравнение строк не пойдёт.
Проверил, там "=" к строкам правильно, а ">", "<" для строк применяются без учёта регистра.
Надо использовать КодСимв() и проверку на Ё.
35. v.l. 26.11.12 19:43 Сейчас в теме
(34) maloi_a, не только Ё, но и на другие буквы с диакритическими знаками. Не помню уже, но в каком-то типовом семёрочном клиент-банке при выгрузке/загрузке в/из ДБФ все эти буквы с диакритическими знаками конвертировались туда-сюда. Уже не помню, во что, но эти белорусские Ў были вместе с украинскими Є и Ї. Потому что в ДБФ они терялись (((
36. O-Planet 6997 27.11.12 11:20 Сейчас в теме
Обсуждение пошло явно не в то русло :)
Предлагаю альтернативное решение проблемы:

Процедура ВариацияЪ(Знач Стр,П=1)
	Если П>59 Тогда
		Возврат Стр;
	КонецЕсли;	
	Большие="ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁQWERTYUIOPASDFGHJK­LZXCVBNM";
	Махонькие="йцукенгшщзхъфывапролджэячсмитьбюёqwertyuiopasdfgh­jklzxcvbnm";
	Х=Найти(Стр,Сред(Большие,П,1));
	Если Х=0 Тогда
		П=П+1;
	Иначе
		Стр=Лев(Стр,Х-1)+" "+Сред(Махонькие,Х,1)+Сред(Стр,Х+1);
	КонецЕсли;	
	Возврат ВариацияЪ(Стр,П);
КонецПроцедуры
Показать


Зацените мощЪ мысли... :D
37. O-Planet 6997 27.11.12 11:23 Сейчас в теме
Пс... И не говорите мне про НРЕГ! Тогда оно уже почти перестанет быть быдлокодом...
38. maloi_a 27.11.12 15:18 Сейчас в теме
(37)
Процедуру заменить на функцию
и
Стр=Лев(Стр,Х-1)+" "+Сред(Махонькие,П,1)+Сред(Стр,Х+1);

Тогда будет всё правильно.
40. O-Planet 6997 27.11.12 17:22 Сейчас в теме
39. KillHunter 7 27.11.12 16:07 Сейчас в теме
да хороший вариант:
Стр=Лев(Стр,Х-1)+" "+Сред(Махонькие,П,1)+Сред(Стр,Х+1);
41. O-Planet 6997 27.11.12 17:25 Сейчас в теме
А вот интересно, на какой длине строки этот вариант начнёт работать быстрее, чем оригинальный в статье?
44. maloi_a 28.11.12 09:16 Сейчас в теме
(41)
При длине имени больше 200 ВариацияЪ() будет быстрее.
Увы.
Мой вариант самый эффективный - сравнение "<>" работает быстрее встроенной Врег().
42. ildarovich 6941 28.11.12 02:04 Сейчас в теме
Предложу свой вариант на основе стэйт-машины
Функция Синонимайзер(Имя, Ответ = "", Стэйт = 7, б = "") Экспорт
	Для ё = 1 По СтрДлина(Имя) Цикл
		а = Сред(Имя, ё, 1);
		Стэйт = (НРег(а) <> а) * 4 + Цел(Стэйт / 2);
		Ответ = Ответ + ?(Стэйт = 2, НРег(б), ?(ё = 2, ВРег(б), б)) + ?(Стэйт = 4 ИЛИ Стэйт = 5, " ", "");
		б = а
	КонецЦикла;
	Возврат Ответ + б
КонецФункции
Показать
Выгодное отличие здесь в том, что символ вырезается из строки и проверяется на регистр только один раз. Если б не надо было первую букву делать заглавной - было бы еще красивее.
46. v.l. 29.11.12 11:36 Сейчас в теме
(42) Класс!
Значения параметров что обозначают? // сплю я еще
47. ildarovich 6941 05.12.12 21:03 Сейчас в теме
(46) Значения параметров обозначают начальные значения переменных цикла. Делая их параметрами, мы, кроме сокращения количества строк в записи функции, добиваемся некоторого расширения ее возможностей. Например, присвоив параметру Ответ значение "Синоним:" мы получим результат, начинающийся со строки "Синоним:". Присвоив параметру Стэйт значение 7 * 2 * 2 * 2 * 2 * 2 (7 умножить на два в некоторой степени), мы "защитим от преобразования" соответствующее количество символов в имени. Присвоив параметру б некоторое значение, мы получим результат, начинающийся с этого значения, записанного в верхнем регистре.
Evil Beaver; +1 Ответить
48. v.l. 06.12.12 01:35 Сейчас в теме
(47) ildarovich, вона, как... Для меня пока слишком умнО.
43. Jogeedae 38 28.11.12 05:15 Сейчас в теме
непорядок :)
СинКосТан32Котан
Син кос тан32 котан - преобразование 1с-ки
Син кос тан 32Котан - преобразование Синонимайзера
45. ildarovich 6941 28.11.12 11:00 Сейчас в теме
(43) Внес исправления, теперь должно работать правильно...
Прикрепленные файлы:
Jogeedae; +1 Ответить
49. Поручик 4375 17.01.13 12:19 Сейчас в теме
Немного подумал и решил использовать в рабочем проекте.
50. nick-max 225 06.08.13 11:02 Сейчас в теме
51. nalivai-chai 646 20.09.13 15:52 Сейчас в теме
Хотел здесь найти функцию, которая вернет правильный идентификатор по произвольной строке, но не нашел(:
Пришлось самому писать, вот может кому пригодиться:

//	Возвращает правильный идентификатор переменной языка 1С из произвольной строки.
//
Функция ПолучитьПравильноеИмяИдентификатораЯзыка1С(Строка)
	
	ДлинаСтроки = СтрДлина(Строка);
	
	Идентификатор = "";
	
	ПерваяБуква = Истина;
	
	Для НомерСимвола = 1 По ДлинаСтроки Цикл
		
		ТипСимвола = ТипСимвола(Строка, НомерСимвола); 
		Если ТипСимвола >= 1 И ТипСимвола <= 4 Тогда
			Если ПерваяБуква Тогда
				Идентификатор = Идентификатор + ВРег(Сред(Строка, НомерСимвола, 1));
			Иначе
				Идентификатор = Идентификатор + Сред(Строка, НомерСимвола, 1);
			КонецЕсли;
			ПерваяБуква = Ложь;
		Иначе
			Если ТипСимвола >= 5 И ТипСимвола <= 6 Тогда
				Идентификатор = Идентификатор + Сред(Строка, НомерСимвола, 1);
			КонецЕсли;
			ПерваяБуква = Истина;
		КонецЕсли;
		
	КонецЦикла;
	
	Если ПустаяСтрока(Идентификатор) Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	Если ТипСимвола(Идентификатор, 1) = 5 Тогда
		Идентификатор = "_" + Идентификатор;
	КонецЕсли;
	
	Возврат Идентификатор;
   
КонецФункции
	
//	Возвращает код типа символа:
//		1	- верхний регистр кириллицы;
//		2	- нижний регистр криллицы;
//		3	- верхний регистр латиницы;
//		4	- нижний регистр латинцы;
//		5	- цифра;
//		6	- нижние подчеркивание;
//		-1	- не является ни буквой, ни цифрой.
Функция ТипСимвола(Стр, Поз = 1) Экспорт
	
	Код_с = КодСимвола(Стр, Поз);
		
	Код_0		= 48;	//	КодСимвола("0");
	Код_9 		= 57;	//	КодСимвола("9");

	Код_в_Эй	= 65;	//	КодСимвола("A");
	Код_в_Зэд	= 90;	//	КодСимвола("Z");
	Код_н_эй	= 97;	//	КодСимвола("a");
	Код_н_зэд	= 122;	//	КодСимвола("z");
	
	Код_		= 95;   //	КодСимвола("_");

	Код_в_А		= 1040;	//	КодСимвола("А");
	Код_в_Я		= 1071;	//	КодСимвола("Я");
	Код_н_а		= 1072;	//	КодСимвола("а");
	Код_н_я		= 1103;	//	КодСимвола("я");
	
	Если (Код_с >= Код_в_А) И (Код_с <= Код_в_Я) Тогда
		Возврат 1;
	ИначеЕсли (Код_с >= Код_н_а) И (Код_с <= Код_н_я) Тогда
		Возврат 2;
	ИначеЕсли (Код_с >= Код_в_Эй) И (Код_с <= Код_в_Зэд) Тогда
		Возврат 3;
	ИначеЕсли (Код_с >= Код_н_эй) И (Код_с <= Код_н_зэд) Тогда
		Возврат 4;
	ИначеЕсли (Код_с >= Код_0) И (Код_с <= Код_9) Тогда
		Возврат 5;
	ИначеЕсли Код_с = Код_ Тогда
		Возврат 6;
	КонецЕсли;
		
	Возврат -1;
	
КонецФункции

Показать
52. v.l. 17.10.13 11:57 Сейчас в теме
(51) nalivai-chai, "нижнее подчеркивание"... Хм... навеяло: "В подвале клуба любителей тавтологии обнаружен смертельно убитый труп погибшего мертвеца".

А можно ж и переделать: убрать недопустимые символы и символ после пробела преобразовать к верхнему регистру, а пробел удалить.
Аналог такой функции я использовал в отчете по менеджерам в 2008 году http://infostart.ru/public/16635
Там динамически формируются колонки в таблице значений по фамилиям менеджеров.

В типовых есть процедура,разлагающая строку на массив слов. Обходя массив делать первый символ верхним. Навскидку:
Подстроки = Общегоназначения.РазложитьСтрокуВМассивПодстрок(Синоним, " ");
Имя = "";
Для каждого ТекСтрока Из Подстроки Цикл
	Имя = Имя + ТРег(ТекСтрока);
КонецЦикла;
53. nalivai-chai 646 17.10.13 19:59 Сейчас в теме
(52) однако, не один такой, из Википедии:

... Кроме того, этот символ часто называют «Нижнее подчёркивание», что также некорректно и является плеоназмом — подчёркивание всегда выполняется снизу...
Оставьте свое сообщение

См. также

Программная работа с настройками СКД

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

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    9201    ids79    26       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

[СКД] Программное создание схемы компоновки данных

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

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

15.01.2020    10669    John_d    22       

Последовательности событий. Шпаргалка

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

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    6880    kuzyara    33       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

30 задач. Странных и не очень

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    10818    YPermitin    72       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

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

4900 рублей

Агрегатные функции СКД, о которых мало кто знает

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

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    30740    ids79    50       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Три костыля. Сказ про фокусы в коде

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

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

03.09.2019    19106    YPermitin    80       

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

Данный онлайн-курс предусматривает изучение процессов DevOps, их применение при разработке на платформе 1С. В результате прохождения онлайн-курса вы сможете: настроить ПО необходимое для проведения проверок и тестирования, создавать сценарии тестирования и объединять их в комплексные процессы, создавать скрипты для автоматизации процессов DevOps.

12000 рублей

Отслеживание выполнения фонового задания

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

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

17.08.2019    21859    ids79    16       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

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

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    42853    ids79    36       

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500-9500 рублей

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    21847    avalakh    21       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

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

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    33642    ids79    11       

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    23394    ids79    27       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

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

40000 рублей

Регистры сведений. За кулисами

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

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    17823    YPermitin    12       

"Меньше копипаста!", или как Вася универсальную процедуру писал

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

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    14482    SeiOkami    49       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

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

5500 рублей

Создание отчетов с помощью СКД - основные понятия и элементы

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    36311    ids79    17       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Производительность и оптимизация (HighLoad)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    18959    dmurk    144       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Регистры накопления. Структура хранения в базе данных

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

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

16.05.2019    31298    YPermitin    30       

Выполнение внешней обработки в фоновом задании

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

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    20459    Eret1k    23       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Выгрузка документа по условию

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

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    11696    m-rv    2       

Как прикрутить ГУИД к регистру сведений

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

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

16.04.2019    15081    m-rv    16       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

О расширениях замолвите слово...

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

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    26032    ellavs    125       

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

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

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    20811    ellavs    83