Маленькие хитрости большого программирования. Часть 1. "Контекст, покажи личико"

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

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

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

Заходишь раним солнечным утром в обработчик ОбработкаЗаполнения, хочешь написать что-то хорошее и красивое...

...но после первого же нажатия любомого Ctrl+Space после "Основание." весь романтический настрой разбивается о 30-тиэтажный небоскрёб 50-значных наименований реквизитов типа "ОбъемПродукцииРаботДляВычисленияАмортизации" или "ПорядокВключенияСтоимостиВСоставРасходовУСН"...  паника... КОНТЕКСТНАЯ ПОДСКАЗКА, ВЕРНИСЬ, Я ВСЁ ПРОЩУ!!!

Знакомо? Нет? А, ну да! Какой-же нормальный программер с утра пораньше в код-то полезет! Извиняюсь... Сторно "Заходишь раним солнечным утром", приход "Залетаешь поздним-поздним вечером"...

Итак, решение: вставляем до текущего вызова нужной переменной незначащий блок

    Если Ложь Тогда  //ПОТОМ УДАЛИТЬ!!!
        НужнаяПеременная = <Создание или назначение объекта нужного типа>;
    КонецЕсли;

ИЛИ для любителей чистого исполняемого кода (объяснения см. в конце статьи)

    #Если НЕ (Клиент Или Сервер Или ВнешнееСоединение) Тогда  // типизирование переменных без вреда для исполняемого кода
        НужнаяПеременная = <Создание или назначение объекта нужного типа>;
    #КонецЕсли

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

Результат - видим по "НужнаяПеременная." и Ctrl+Space.

После написания всего кода, блок можно стереть. А если поставить комментарий "//ПОТОМ УДАЛИТЬ!!!", то в последствии блок для удаления легко найти поиском по "!!!". Основная прелесть способа в том, что даже если забыть его потом удалить - ничего страшного (кроме недоумения того, кто не знает) не произойдёт.

На всякий случай размещаю явный пример:

пример

Для реализации всплывающего контекста для составного типа привожу пример на базе конф. "Бухгалтерия предприятия 8 ред. 1.6":

    Если Ложь Тогда  //ПОТОМ УДАЛИТЬ!!!
        Основание = Документы.СчетФактураВыданный.СоздатьДокумент().ДокументОснование;
    КонецЕсли;

Бурные обсуждения статьи в комментариях сподвигли сделать ещё одно дополнение (см. выше). Так как в бой вступили сторонники семёрки, а точнее приверженцы таких модов для семёрки, как телепат или интеллисенс, поднялся вопрос о чистоте исполняемого кода уже скомпилированного приложения. В связи с этим выложил ещё один вариант принудительного типизирования переменной с использованием инструкций препроцессора. Суть этого варианта - полное исключение из компиляции объявления переменной за счет того, что условие "НЕ (Клиент Или Сервер Или ВнешнееСоединение)" никогда не вернёт положительный результат. Тем не менее процессор контекстной подсказки обрабатывает этот блок и приводит к нужному результату.


За поднятие темы про чистоту кода спасибо artbear и orefkov

За дополнение комментарием "//ПОТОМ УДАЛИТЬ!!!" спасибо Трактор

За вопрос про составной тип спасибо GROOVY

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. GROOVY 2541 09.02.10 13:28 Сейчас в теме
Удобно для кодинга. Сам так делал пару раз, правда без условия, и только на время кодинга...
2. mbreaker 1334 09.02.10 13:37 Сейчас в теме
(1) В условии основная фишка: его можно безболезненно забыть... :D
Да и во время отладки он не мешается...
4. Трактор 1199 09.02.10 13:41 Сейчас в теме
(2) И потом искать свой код тут http://govnokod.ru/1c
Его туда выложат настоящие говнокодеры :-)
23. iov 407 10.02.10 00:49 Сейчас в теме
(4) Хм вот всегда удивлялся пусть хоть весь мой код будет там . НО именно таким кодом большенство делает БЫСТРО И ДЕШЕВО и это работатет.
А если я сижу и пишу для себя для души. то я каждую строчку откоомментирую
Главное правило (потраченное время (еффективно*) = вознаграждение* оставшееся свободное время). тоесть если я портатил 1 час то останется 15 часов (примерно 24 -1 - 9(сон)). Так вот в идеале потраченное время стремимся свести к минимуму а вознаграждение к максимуму и достигается это именно забиванием на эргономичнось красоту и простоту и справку и камменты.
Да и извиняюсь Потом или вы или иной программист заработатет на ОПТИМИЗАЦИИ!!!
*еффективно это то время что оплачивается лично Вам. Тут уже поднималась статья на тему времени и его использования.
(21) Ну многие всетаки верно не считают 1С - ПРОГРАММИСТАМИ! Потому как все таки нет возможности работы с базами данных напрямую (записи) штатными средствами (да понятно что так меньше сломают но все же).
Потому как нет возможности штатными средствами чистить память за собой . Да много чено нету. Но зато 1С предоставила возможность зарабатывать больше большинства сишников дельфистов и иных. Да прогеры SAP ов больше получают но их меньше и им сложнее. А по поводу статьи... Ну вот чесно она же привлекла внимание? Вы потратили время написав комментарий. Но количество плюсов указывает на то что как минимум 22 человека получили ПОЛЕЗНУЮ информацию. Так что минус наверно стоило адресовать тем кто не хочет изучать азы, а автор статьи все таки донес крупицу истины.
лично я называя себя программистом 1С (8 лет стажа) в дуже понимаю что умение писать код и умение ПИСАТЬ КРАСИВЫЙ код - это две большие разницы.
А в большинстве когда ищут программиста ищут не того кто красиво пишет а того кто сделает меньше ошибок принесет, больше пользы, и не будет требовать доплатить за откамментированный код. И что не маловажно программист должен не только оптимизировать и "кирпичизировать"* программу а так же снизить расходы на её эксплуатацию.
* кирпичизировать - сделать максимально простую и непотопляемую систему с максимально простым в понимании и изучении интерфейсом.

P.S. Просьба авторов постов не кипятится отвечаю не ВАМ лично а не темы вами затронутые. Просто добавив немного буковок в базу сайта.
Designer1C; indigo_; arz; Valerich; +4 Ответить
24. iov 407 10.02.10 00:52 Сейчас в теме
(23) Блин надо почаще спать все таки... :o АпШибок море.
вобщем вспоминаем статью английских учены про то что если перепутать буквы то прочесть можно. :D
30. artbear 1184 10.02.10 12:33 Сейчас в теме
(23) В "красивом" коде как раз и ошибок меньше хотя бы за счет того, что его читать/изучать легче, а значит, и ошибки лучше видны :)
И как раз человек, умеющий писать "красивый" код, сложные вещи напишет реально быстрее и точнее, чем чел, не умеющий такого писать.

А по поводу противопоставления разработчиков и программистов - ИМХО Нуралиев просто применил психологический прием для повышения самооценки работников нашей отрасли и все.
Лично я не отделяю разработку от программирования.

Программирование включает в себя и разработку, и чистое кодирование, и многое другое.

А сравнивать/разделять программистов и разработчиков ИМХО равносильно поведению простых юзеров, которых всех ИТ-ников "обзывают" программистами, независимо от роли, знаний, умений и т.д. :) - т.е. это такой крайне низкий уровень знаний и умений.
Designer1C; +1 Ответить
65. Abadonna 3858 14.03.10 11:22 Сейчас в теме
(30)
А сравнивать/разделять программистов и разработчиков ИМХО равносильно поведению простых юзеров, которых всех ИТ-ников "обзывают" программистам

Простые юзеры зовут еще круче - "компьютерщики" ;)
3. Трактор 1199 09.02.10 13:39 Сейчас в теме
(0) Я обычно добавляю комментарий // УБРАТЬ!!!!!!
Потом ищу по восклицательным знакам.

(1) Странное слово "кодинг". Созвучно словам модинг, гопинг и маркетинг.
6. mbreaker 1334 09.02.10 13:53 Сейчас в теме
(3) Можно искать и по "//УБРАТЬ!!!" и по "Если Ложь" и по "//Уп-с облажался забыл убрать!!!"...

Главное - этот блок не испортит ЛОГИКУ ВАШЕГО КОДА!

Много раз ловил себя на том, что в запарке полчаса тратишь на отладку куска кода, который не работает только из-за забытого

Основание = Документы.СчетНаОплатуПокупателю.СоздатьДокумент().Ссылка;

(4) Лучше попасть туда, чем в кабинет к директору предприятия с миллионными оборотами, лепеча что-то типа "ну забыл... ну с кем не бывет..."

Согласны?
5. GROOVY 2541 09.02.10 13:52 Сейчас в теме
Да и я обычно пишу "ПустаяСсылка()"... ;)
7. mbreaker 1334 09.02.10 13:57 Сейчас в теме
(5) Честно сказать, здесь написал, что в голову первое пришло... На самом деле, что именно будет там - не важно... Главное - чтобы это что-то было нужного типа... ;)
8. Арчибальд 2710 09.02.10 14:01 Сейчас в теме
9. mbreaker 1334 09.02.10 16:22 Сейчас в теме
(8) с бухгалтерами 6 лет пообщаешься - и кошелёк свой в разрезе статей ДДС начнёшь видеть... :D
Mustard; DMSDeveloper; +2 1 Ответить
10. Арчибальд 2710 09.02.10 17:05 Сейчас в теме
(9) Вот потому и понравилось. Имею 1С Бухгалтерию 17-й год :D
11. GROOVY 2541 09.02.10 17:37 Сейчас в теме
А с составным типом ктонить победил также красиво?
13. mbreaker 1334 09.02.10 18:32 Сейчас в теме
(11) можно и с составным... кто мешает? :)
Динамически формируемый тип, как правило не требуется, а используется на базе типа элемента метаданных, а для этого присвойте переменной в этом блоке значение этого элемента...

На пример на базе конф. "Бухгалтерия предприятия 8 ред. 1.6" будет так:

Если Ложь Тогда
Основание = Документы.СчетФактураВыданный.СоздатьДокумент().ДокументОснование;
КонецЕсли;

все реквизиты документов составного типа реквизита ДокументОснование будут доступны в контекстной подсказке... минус, что одинаковые будут дублироваться... но это уже издержки производства...
12. Yashazz 3263 09.02.10 17:57 Сейчас в теме
Да. Вот его безобидность, если забыли убрать, это безусловно прекрасно. Спасибо за идею!
14. O-Planet 6896 09.02.10 18:49 Сейчас в теме
(0) Тож так делаю, только без Если Ложь Тогда... Потом просто убиваю явное определение.

ПС, Что-то подсказывает, что прочитавшие это пользователи Опенконфа и Телепата вытерли грустную слезу о потугах восьмерочников...
ms33; Оболтус; mtv:); MaxDavid; +4 Ответить
16. mbreaker 1334 09.02.10 19:23 Сейчас в теме
(14) честно скажу, не пользовался ни тем, ни другим... знакомство с миром 1С начал с V8 с самых её первых релизов... и наслушался критики в её сторону - вагон и две телеги... так что привычно... ;)

тем не менее не совсем понимаю, чем могут помочь надстройки конфигуратора при обращении к нетипизированному параметру? ведь такое обращение может быть как в событии (где ещё можно выйти на тип передаваемого параметра), так и в процедуре общего модуля... а "парсить" все обращения к этой процедуре - по меньшей мере неблагодарное занятие...
43. orefkov 1012 11.02.10 15:58 Сейчас в теме
(16)
тем не менее не совсем понимаю, чем могут помочь надстройки конфигуратора при обращении к нетипизированному параметру?


Показываю принцип:

Процедура ОбработкаЗаполнения(Основание // :Документы.СчетФактураВыданный.ДокументОснование
   )

или

Процедура ОбработкаЗаполнения(Основание)
...
    // Основание : Документы.СчетФактураВыданный.ДокументОснование



intellisence в 7ке распознает такие комментарии и активно их использует для построения списка.
Самодокументирование кода практически.
44. mbreaker 1334 12.02.10 11:48 Сейчас в теме
(43) хм... забавно... в первом пример только по-моему такое описание убъёт закрывающую скобку процедуры...

тем не менее и принцип и сама реализация практически та же самая, что и у примера в статье...
45. artbear 1184 12.02.10 11:52 Сейчас в теме
(43), (44) Схема, аналогичная реализованной нами в Интеллисенс для 77, сделана в подсистеме "Контекстная подсказка" (и соответственно в Инструменты разработчика") для 8.1
(44) Схема все-таки отличается, т.к. в нашем варианте только комментарии, никакого лишнего кода :)
46. mbreaker 1334 12.02.10 12:14 Сейчас в теме
(43), (44) а если так? ;)
    #Если Клиент И Сервер Тогда
        НужнаяПеременная = <Создание или назначение объекта нужного типа>;
    #КонецЕсли;
47. artbear 1184 12.02.10 13:12 Сейчас в теме
(46) Да, ИМХО намного красивее, чем просто Если Ложь :)
Но сразу не работает :)
: Ошибка в операторе препроцессора
#<<?>>КонецЕсли;
: Ожидается завершение оператора препроцессора Если (If)

Точка с запятой после КонецЕсли лишние, без этого все путем.
Правда, я совсем не уверен в качестве реализации препроцессора - возможно, нет никакой разницы между 2-мя этими способами.

ЗЫ в тестировании - наше все :)
mbreaker; +1 Ответить
48. mbreaker 1334 12.02.10 13:57 Сейчас в теме
(47) да, спасибо за исправление... скопировал - не заметил ";"

если бы не было разницы, код бы исполнялся везде...
49. artbear 1184 12.02.10 14:33 Сейчас в теме
(48) Я говорю о разнице в быстродействии.
Т.к. мы не знаем деталей реализации препроцессора.
50. mbreaker 1334 12.02.10 14:46 Сейчас в теме
(49) и я о них же...
какой смысл в инструкциях препроцессора, если не будет производится анализ включаемых блоков?
51. artbear 1184 12.02.10 15:20 Сейчас в теме
(50) По опыту разработки над ВК 1С++ и ФормЕкс знаю, что 1С очень слабо занимается оптимизацией кода работы.

Кстати, можно попробовать проверить :)
1000 раз или еще побольше с замером времени запустить код Выполнить(Строка), передавая обе строки в Выполнить.
15. artbear 1184 09.02.10 19:04 Сейчас в теме
(0) Бывшие пользователи и соучастники Опенконфа и его скриптов/плагинов постоянно матюгаются при написании кода в 1С 8 :)
ret-Phoenix; wokituk; cleaner_it; Mustard; ms33; Оболтус; mtv:); MaxDavid; +8 Ответить
17. mbreaker 1334 09.02.10 19:24 Сейчас в теме
(15) на вкус и цвет... все фломастеры одинаковые... :D

может и 8.х станет расширяемой когда-нибудь...
18. sipoju 09.02.10 19:25 Сейчас в теме
"Если Ложь Тогда" -- Красота :D
19. anig99 2722 09.02.10 19:50 Сейчас в теме
Чтобы так сладко не было...
Именно из-за таких баянистов 1совцев за программистов не считают...
Для 1с применимы все приемы упрощения разработки кода. Такие вещи приходят в нетормозящую голову на первый год изучения любого языка программирования в среде с контекстными подсказками.
Если бы не было столько восторгов, то минус бы не поставил... А так, нужно что-то отрезвляющее внести в тему.
Sardukar; AlexO; Borisych; ZOMI; larisab; +5 8 Ответить
20. mbreaker 1334 09.02.10 20:48 Сейчас в теме
(19) Уважаемый Александр, если Вы недостаточно внимательно прочитали комментарии, специально для Вас повторю: 8-й платформой я занимаюсь более 6-ти лет. Программированием - более 15-ти лет. Перед тем, как размещать эту статью, поиском прошелся по Инфостарту и нечего на тему работы с контекстной подсказкой не нашёл, поэтому вашу фразу "из-за таких баянистов" откровенно не понял.

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

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

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

Уважайте, пожалуйста, своих коллег по профессии, а то Вы тут всех второгодок в "тормоза" записали своей фразой про "нетормозящую голову".

Если Вы сомневаетесь в моей компетенции почитайте мои статьи на более серьёзные темы... Например http://infostart.ru/public/65456/ [Пардон, не заметил Ваш плюсик, на этой статье]

И, если Вас, конечно, это не затруднит, объясните что именно "отрезвляющее" Вы внесли своим постом в эту тему? Раз десять перечитал Ваше сообщение и так и не понял, Вы призываете не пользоваться такими уловками?
nik2754; Pervuy; asu2; 1_C; cleaner_it; Styvi; Новенький; Valerich; ms33; vers139; PowerBoy; Borisych; vlk_led; Serj1C; DIvanmgn; niyaz; Трактор; anig99; ZERO_; Tatitutu; support; +21 Ответить
21. anig99 2722 09.02.10 23:25 Сейчас в теме
(20) Боян - в том смысле, что данная вещь давно известна...А не то, что упоминалась на инфостарте... Если ограничиваться инфостартом, то можно большую часть мисты опубликовать.
Во-вторых, я не сомневался в Вашей компетенции. Мой минус не за саму статью, а частично за её наличие, и частично за удивительно большое число плюсов от опытных программистов. По поводу наличия... Тут уже давно был разговор о том, что "программисты 1с" не знают элементарных основ написания кода. Причем не отдельных приемов, а систематическое незнание. Поэтому было бы лучше, на мой взгляд, отсылать пользователей "в сад", т.е. к книгам по основам, сайтам для изучающих (вроде того же delphikingdom), где не зацикливаются на синтаксисе, а рассматривают в том числе приемы и алгоритмы. Меня очень сильно раздражает мнение многих программистов в других средах, которые считают, что те, кто занимается 1с ну ни как не программисты. Часто это обосновано - доля носильщиков ИТС гордо именующих себя программистами 1с очень велика. Сам был свидетелем, когда человек, окончивший институт по соответствующей специальности не смог открыть 7.7 в режиме конфигуратора - он просто не знал где и что это...
Так вот, такие вот статьи вредны тем, что способствуют такой ситуации, когда новичок не чувствует потребности не то, чтобы прочитать книжку по основам программирования, но даже пройти курсы 1с и сдать на сертификат... Сажают человека за руль автомобиля, когда он ещё ходить не умеет... Научится ездить, а когда машина сломается не сможет сдвинуться с места, или покалечится...
Именно поэтому, я приветствую дискуссию по этому поводу, но отрицательно отношусь к активному плюсованию статьи.
Вот... Щас нараздаю плюсы за комменты.
Ish_2; larisab; +2 Ответить
38. mbreaker 1334 10.02.10 23:55 Сейчас в теме
(21)
Так вот, такие вот статьи вредны тем, что способствуют такой ситуации, когда новичок не чувствует потребности не то, чтобы прочитать книжку по основам программирования, но даже пройти курсы 1с и сдать на сертификат...

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

Вы вот, например, готовы сказать, что знаете абсолютно ВСЕ такие уловки? Можно заниматься программированием 20 лет, а на 21-й год узнать какую-то вещь, про которую кто-то другой скажет "фу, боян, ему 20 лет уже!"

И готовы ли Вы назвать хоть один курс или книжку или аттестационный тест, в котором бы было описание или вопрос про вещи, подобные этой?
42. anig99 2722 11.02.10 15:00 Сейчас в теме
(38) Тут где-то была ссылка на целую книгу по оптимизацию написания кода...
Нет... все уловки я не знаю.
А про курсы... Эти курсы называются "школа, 9-11 классы"... Именно там была заложена основа, о которой я говорю.
29. artbear 1184 10.02.10 12:25 Сейчас в теме
(19) Я поставил плюс не за то, что написано или открыто что-то супер.
Мне лично это было известно и использование этой фичи для меня естественно, я даже не думал, что другим будет полезно.
Но после прочтения сабжа лично я считаю, что подобные публикации как раз и помогают программистам/разработчикам совершенствовать свой профессионализм.
За это и плюсанул.
nik2754; TreeDogNight; rusakov_igor; cleaner_it; Styvi; nerl; jeg; mbreaker; Трактор; shadowcpu; Evg-Lylyk; +11 Ответить
22. zaebidze 10.02.10 00:27 Сейчас в теме
Ну anig99 ты и выдaл)))))Дело в том что другие программисты и правильно что не считают тех кто занимается 1с программистами.Нуралиев правильно ответил для PC Magazine вот кусок статьи

"Теперь попробуем ответить на второй вопрос - о профессии разработчика приложений на базе платформы «1С:Предприятие». Все-таки, по нашему мнению, специалиста любой профессии характеризует не только инструмент, которым он пользуется, но и круг задач, которые он умеет решать. Нам кажется, лучше использовать не термин «программист», а именно термин «разработчик». Создание приложений на «1С:Предприятии» не является написанием программы. Написание кода - только часть работы. Это именно разработка приложения, строящаяся, как мы говорили выше, начиная от структуры прикладных объектов, описания их взаимосвязи, продумывания бизнес-процессов. То есть разработчиков на «1С:Предприятии» характеризует не знание синтаксиса встроенного языка. Профессиональные разработчики на «1С:Предприятии» - специалисты по разработке бизнес-приложений. Само по себе описание структуры данных в «1С:Предприятии», написание программы на встроенном языке, рисование форм не является сложным и осваивается на некотором уровне, достаточном для решения несложных задач, обычно за 2-3 недели. Но разработка бизнес-приложений - это весьма сложная задача, не менее сложная, чем создание, например, средств разработки, САПР и т. д."
Leon29; nik2754; Designer1C; AzagTot; cleaner_it; indigo_; iov; +7 Ответить
25. iov 407 10.02.10 00:54 Сейчас в теме
(22) Вот точно я то вспоминал кто же это сказал....
35. anig99 2722 10.02.10 20:33 Сейчас в теме
(22) В данном высказывании Нуралиев ставить 1совцев ВЫШЕ программистов. А я говорю о тех, кто не может поставить рядом словосочетания "1с Предприятие" и "программирование".
(23) Душелов, Гилев, Абадонна... Они находят возможность программировать вполную для 1с... Еще можно вспомнить 1с++, ei...1с - высокоуровневый язык программирования, поэтому много ему напрямую недоступно. В том же самом Delphi работа с базами данных происходит через BDE и т.д - в 1с можно работать с SQL посредством драйвера совершенно спокойно... А в С++ нельзя нормально работать с массивами...
(29) Лучше бы потратили время на другое - например на подробную статью о тонкостях работы запросов...
36. iov 407 10.02.10 21:36 Сейчас в теме
(35) Я еще раз повторюсь. Я сказал что ПУСТЬ ХОТЬ ВЕСЬ КОД ТАМ бУДЕТ ... И так же написал про то что я стремлюсь меньше работать и больше зарабатывать. Просто показатель эффективности работы не красота кода или его мега качество а желание клиента за него платить.
И если я пишу что-то то каменты описания и максимум универсальности стараюсь выжать. Уговорить меня (если оплата не по часам) добавить лишний реквизит может только ПОЛНОЕ отсутсвие других вариантов (при этом я делаю копию "до" "после" и описываю изменения). Но всегда стараюсь изучить что-то новое даже напрямую не связанную с 1С. И если кто-то что-то выкладывает чего не было раньше на ресурсе - Я ЗА. И Я ЗА КРАСИВЫЙ КОД если конечно средства не превышают задач цели.
Да и по поводу Нуралиева он ОБЯЗАН продвигать свой продукт. Так что пусть хоть религию 1С проповедует и пострижение в разработчики проводит ето дело каждого. Но в 1С действительно своя специфика... Как пример текущая хотелка клиента привязывать возврат от покупателя к одной накладной (а товар в возврате из накладных за месяц) И что делать основание - неправильно.
Но учитывая особенности учета в компании необходимо. Как програмисту мне это сделать 5 минут. Как разработчику мне это надо изучить возможные проблемы и методы их решения. И как обьяснить заказчику что это займет мое время и увеличит его затраты ? Директора считают деньги и готовы платить не за проблемы через год а за решение проблемы СЕЙЧАС. Так что я не готов тратить СВОЕ ВРЕМЯ и внедрять универсальные процедуры - оптимизировать -
и так далее. Это я на основной работе облизываю программу и внедряю и оптимизирую и модернизирую - потому что мне платят не за строчки кода и не за время а за безпроблемность, маштабируемость и гибкость.
Душелов, Гилев, Абадонна... ОНИ ПРОДАЮТ СВОИ РЕШЕНИЯ. Тоесть количество продаж зависит от качества кода и возможности его применения и развития. Так что .... Да кстати и они учились и развивались на статьях других...
39. mbreaker 1334 11.02.10 00:05 Сейчас в теме
(36)
Директора считают деньги и готовы платить не за проблемы через год а за решение проблемы СЕЙЧАС

Знакомая проблема... Вменяемым директорам полезно бывает озвучить в цифрах стоимость "решения проблемы через год" (50% гарантировано передумают ибо "считают деньги"). Для невменяемых составлять ТЗ, в котором указаны возможные проблемы при конкретной реализации, и заставлять подписаться в нём и в акте сдачи-приемке.
40. iov 407 11.02.10 10:45 Сейчас в теме
(39) НЕкоторых это не особо пугает... это же потом будет... Конечно акт подписывают и в коде пишу тем кто будет исправлять почему так сделал. И в документации. Но некоторые перцы все равно потом пытаются свое фи высказать.
92. AlexO 129 03.06.13 10:43 Сейчас в теме
(35) anig99,
...Гилев...

Лучше бы потратили время на другое

я только за
93. AlexO 129 03.06.13 10:47 Сейчас в теме
(35) anig99,
В том же самом Delphi работа с базами данных происходит через BDE и т.д - в 1с можно работать с SQL посредством драйвера совершенно спокойно...

Только "забываете" упомянуть, что Дельфи и "прочие" работают с "собственными" БД, на которые и написано приложение на "Дельфи и прочих" ЯП.
А 1С работает "напрямую" посредством драйвера - с люббой SQL-базой, кроме собственно базой 1С.
А в С++ нельзя нормально работать с массивами...

С++ уже давно (лет так 15) заменен на Visual C, Borland C, и прочие "С".
И все там с массивами прекрасно, разве что они значительно отличаются (в лучшую сторону причем) от "массивов" 1С.
94. anig99 2722 03.06.13 13:41 Сейчас в теме
(93) да... сейчас уже не язык программирования важен, а среда разработки. Вот, например, недавно вышел RAD Studio XE4... Там куча языков.
95. AlexO 129 03.06.13 16:28 Сейчас в теме
(94) anig99,
Там куча языков.

ну, может, кто-то и назовет это кучей: Delphi XE4 и C++ Builder XE4.
А все остальное под смартфоны и прочие мобилы - эту пену я за языки не считаю, через 20 лет никто и не вспомнит про смартфоны и языки "допрограммирования" для них... :)
26. iov 407 10.02.10 01:00 Сейчас в теме
Да и вообще учитывая что мы то хотьчто-то создаем. А посмотрите на бухгалтеров они то бедные кроме кучи отчетов и пачек архивной бумаги ничего не создают... Спросите их что они создали? А многие директора кроме создания перемещения кадров по компаниям и акустических колебаний на собраниях вообще нихрена не создали но ОНИ получают больше и руководят ВАМИ. Так что радость создания ЛЮБОГО кода это уже путь к большому и светлому чувству Я _ АРРЕНИТЕЛЬНЫЙ ПРОГРАММИСТ СОЗДАВШИЙ ДОХРЕНА ПРОГРАММ :D .
P.S. но кроме этого дерево- дом, дерево-сын, дерево-дуб все таки надобы выполнить :D
27. larisab 159 10.02.10 06:57 Сейчас в теме
(0) Отрицать полезные вещи трудно, поэтому поддержу anig99. Писать красочные статьи с картинками для студентов наверное надо, но вот данная тема... хм... есть что-то тошнотворное в этом... вспоминаются прописи в первом классе школы...
28. WellMaster 99 10.02.10 10:02 Сейчас в теме
Спасибо. Знал, но почитать было весело :)
31. artbear 1184 10.02.10 12:42 Сейчас в теме
И вообще мало в среде 1С публикаций, направленных на повышение уровня разработки как в кодировании, так и в разработке архитектуры бизнес-решений.

Например, досталась мне тут одна база 77 - это пример некачественной разработки архитектуры решения http://www.1cpp.ru/forum/YaBB.pl?num=1265121403/15
В одном регистре куча измерений, более 8, из них часть числовых - ВУ_Метраж, ВУ_Площадь, ВУ_Ширина и т.д.
В результате этого решения на реальной базе ОЧЕНЬ медленно открывается период ТА, хотя сама база очень маленькая.
V.Nikonov; +1 Ответить
32. artbear 1184 10.02.10 14:12 Сейчас в теме
(0) Насчет " //ПОТОМ УДАЛИТЬ!!!"
ИМХО проще и привычнее написать что-то типа
//TODO_УДАЛИТЬ код после разработки
и выполнять поиск по TODO

В более удобных средах разработки давным-давно есть TODO-списки, формируемые средой автоматом

ЗЫ лично я давно, еще со времен 77, юзаю следущие варианты дополнительно к простому TODO :
TODO_МЕТАДАННОЕ - в комменте описываю изменения, который я вносил в метаданные типовой конфы, например, движения по доп.регистрам
TODO_ФОРМА
TODO_ИНТЕРФЕЙС
TODO_ПРАВА
и т.д.
очень удобно при анализе изменений в типовых конфах
33. WKBAPKA 220 10.02.10 15:25 Сейчас в теме
лично как по мне, мне в голову даже мысль об этом не приходила... а зачем? лучше немного потренировать мозги на развитие памяти... а вот забывать удалять такие кусочки кода всеж не следует, все же интерпритатор их отрабатывает :)
34. artbear 1184 10.02.10 19:11 Сейчас в теме
Завел новую публикацию Повышение удобства разработки в 1С 8
Сослался в своей публикации на сабж, т.к. считаю очень полезным.
37. mbreaker 1334 10.02.10 23:05 Сейчас в теме
(34) Приятно это слышать! :)
41. Tiger77 68 11.02.10 12:49 Сейчас в теме
Кто б еще написал шаблон, быстро генерирующий нужный код ?
52. ll13 1071 13.02.10 19:21 Сейчас в теме
#Если Клиент И Сервер Тогда // типизирование переменных без вреда для исполняемого кода
НужнаяПеременная = <Создание или назначение объекта нужного типа>;
#КонецЕсли

В файловой версии условие #Если Клиент И Сервер ВСЕГДА будет ИСТИНА (так называемое "слияние контекста") поэтому этот блок будет ВСЕГДА скомпилирован и выполнен.

Правильно использовать следующую конструкцию
#Если НЕ (Клиент Или Сервер Или ВнешнееСоединение) Тогда
Объект = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
#КонецЕсли
svartemov; NewNick; mbreaker; K_A_O; Поручик; artbear; +6 Ответить
54. mbreaker 1334 15.02.10 09:43 Сейчас в теме
(52) да, согласен, благодарю за поправку... сказывается апгрейд конфигурации "1С:Мозг программиста" с версии 8.1 на версию 8.2... :D
60. NewNick 26.02.10 23:16 Сейчас в теме
(52) #Если НЕ Клиент И Клиент Тогда
помоему короче ;)
плюс сразу позволяет вменяемому человеку на париться - ясно вписан бред

по поводу статьи -
правда если в шаблон конструкцию #если #конецесли не воткну пользоваться не буду - привык втыкать пустуюссылку и потом комментировать (если не забыл). собсно плюс за возможность "не забыть".

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

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

зы. по комментам видно что автор статьи работает с отделом и ему проще заставить подчиненных вставлять как он выразился "не работающие блоки". большинство типизирует переменные без блоков и комментит опосля. немного разный подход в немного разных условиях.
61. mbreaker 1334 27.02.10 14:15 Сейчас в теме
(60) логика здравая, но... в предложенном варианте присутствует неоднозначность для препроцессора... трудно сходу сказать, что именно получится в процессе компиляции... это, наверное, больше вопрос для artbear, он в этом лучше разбирается...

по поводу отдела - угадали... в принципе, данная статья и родилась после очередного консультирования на тему "как сделать быстрее" и последующего выискивания, где же забыли что-то закомментировать...
55. Ivon 640 17.02.10 12:11 Сейчас в теме
Я в конфигураторе сделал, чтобы циклы и Если раскрывались плюсами, как процедуры и функции, теперь для выделения определенных блоков использую конструкцию
Если Истина Тогда
// Блок кода, делающий то-то
......
КонецЕсли;
Теперь для того, чтобы скрыть ненужный блок я просто сворачиваю ненужное Если
mbreaker; +1 Ответить
56. mbreaker 1334 26.02.10 17:51 Сейчас в теме
(55) :idea: хм... тоже интересное решение... а главное - этот блок можно быстро отключить, поменяв флаг на Ложь...
Ivon, Вы не против упоминания такого трюка в одной из частей "Маленьких хитростей"? естественно с упоминанием о первоисточнике...
57. Ivon 640 26.02.10 18:12 Сейчас в теме
58. mbreaker 1334 26.02.10 18:20 Сейчас в теме
78. l_men 14 24.10.11 16:38 Сейчас в теме
(56) (55) Ivon, А не проще данный кусок кода вынести в отдельную процедуру и уж если что, то просто комментировать вызов данной процедуры? Хотя решение классное, я его даже в свой шаблон кода включил.
79. Ivon 640 24.10.11 16:44 Сейчас в теме
(78). Можно, но в определенных случаях это не всегда будет удобно. Тем более, что в процедуры лучше выводить куски кода, которые могут повторяться в нескольких местах кода. Если фрагмент единичен, то выносить его в процедуру не имеет смысла. Это мое ИМХО.
80. l_men 14 24.10.11 17:57 Сейчас в теме
(79) Ivon, Конечно ответ не по сабжу, в этом случае одна процедура может получиться очень большой, а где гарантия того что через пару недель не потребуется этот кусок кода, а так процедуру отладил и забыл о ней и в коде особо не мешается, но это лично мое мнение.
59. mbreaker 1334 26.02.10 18:25 Сейчас в теме
(55) Кстати, натолкнули на одну интересную идею... Постараюсь в ближ. время оформить её во вторую часть "маленьких хитростей"... пришлю ссылку... ;)
62. php5 17 04.03.10 02:02 Сейчас в теме
хм...как ни странно, я эту методу сам выработал и использовал иногда...дежавю...
63. mbreaker 1334 04.03.10 08:25 Сейчас в теме
(62) :D этот велосипед каждый для себя изобретает сам... вопрос в том, когда именно "осенит"...
прописные истины всегда лежат на поверхности, проблема как раз в том и состоит, что со временем "ныряешь" всё глубже, и часть неувиденного в начале так и остается где-то там за спиной...
смысл в таких публикациях двойной: с одной стороны "осенить" новичков как можно раньше, с другой - дать возможность профи "оглянуться назад" (ведь там тоже могло остаться что-то маленькое, но полезное)...
64. Мастер1С 764 14.03.10 07:21 Сейчас в теме
Блок Если ... Тогда... КонецЕсли лишний.
Просто пустую ссылку нужного типа запихиваю
66. mbreaker 1334 15.03.10 01:36 Сейчас в теме
(64) Ошибаетесь... Этот блок сохраняет массу времени при отладке, у вас не было случая, когда вы свою пустую ссылку забывали закомментировать, а потом никак не могли понять, почему же простейший кусок кода неправильно отрабатывает?
68. mbreaker 1334 15.03.10 11:05 Сейчас в теме
(67) прочитайте ту часть статьи, которая выделена красным цветом, там как раз подробно объясняется, зачем тут приведены "всякие варианты извращений с инструкциями препроцессора"...
69. Abadonna 3858 15.03.10 11:06 Сейчас в теме
(68) Да я уж свой пост и закрыл, когда ВНИМАТЕЛЬНО прочитал ;)
70. Abadonna 3858 14.08.10 08:29 Сейчас в теме
Блин, с самого начала изучения 8.х стал так делать, но как-то даже в голову и не пришло, что это ноу-хау ;) Это мне просто от Дельфи в наследство досталось
71. mbreaker 1334 27.08.10 06:57 Сейчас в теме
(70) "ноу хау" (просто для справки) переводится с английского (know how) как "знаю как"... так что соглашусь! это действительно "ноу хау", т.к. я ЗНАЮ КАК и сообщаю об этом тем, кто ещё может быть не знает...
72. Abadonna 3858 27.08.10 07:05 Сейчас в теме
Ноу-хау (от англ. know how — знать как) или секрет производства — это сведения любого характера (оригинальные технологии, знания, умения и т. п.), которые охраняются режимом коммерческой тайны и могут быть предметом купли-продажи или использоваться для достижения конкурентного преимущества над другими субъектами предпринимательской деятельности
Как правило, под ноу-хау подразумевают инновации, имеющие коммерческую ценность в силу неизвестности иным лицам в отношении которой введен режим коммерческой тайны. В высокотехнологичной экономике ноу-хау составляет ключевую часть активов компании.

Не стоит в лобовую переводить.
73. Арчибальд 2710 27.08.10 07:21 Сейчас в теме
74. Abadonna 3858 27.08.10 07:24 Сейчас в теме
(73) А то! ;)
Я просто помню как из-за одного недописанного слова "например" СССР профукал патент на подводные крылья.
75. tsd 148 27.08.10 09:27 Сейчас в теме
(74) вроде наоборот, лишней фразы. Дай бог памяти был указан конкретный угол постановки крыльев, а подлые пиндосы его потом немного изменили и наших, типа, послали.

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

Кстати, почему то нигде не увидел про конфигурирование в режиме отладчика.
Запускаем отладку, в начале модуля/блока кода ставим точку останова, ну и начинаем весело кодировать.

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

Если скрестить оба метода, то вообще гуд получается.
у нас и контекстная подстановка реквизитов есть, и можно сразу проверить каков будет результат.
Только строку определния переменной нужно вставлять после начала отладки или ставить точку останова до ее выполнения.
76. Abadonna 3858 27.08.10 09:32 Сейчас в теме
(75)
вроде наоборот, лишней фразы.

В формуле изобретения написали:
...отличающее тем, что.. установлены под углом 38 градусов

А надо было:
...установлены под углом, например, 38 градусов
77. tsd 148 27.08.10 09:50 Сейчас в теме
(76) вообще градусы указывать не нужно было.
Градус заранее на бутылках с алкоголем видить хорошо :D
81. saiten 229 14.12.11 14:31 Сейчас в теме
Красиво. Люблю такие, якобы очевидные, плюшки: улыбает и повышает настроение.
82. BalVlad 24.01.12 23:23 Сейчас в теме
Очень познавательно. Хотелось бы увидеть вторую и дальнейшие части. +
83. Гость 25.01.12 09:28
Я постaвил плюс не за то, что написано или открыто что-то супер
Мне лично это было известно и использование этой фичи для меня естественно, я даже не думaл, что другим будeт полезно
Но после прочтeния сабжа лично я считаю, что подобные публикaции как раз и помогают прогрaммистaм/разработчикaм совершенствовaть свой профессионализм
За это и плюсaнул
84. Necytij 19.02.12 18:12 Сейчас в теме
Спасибо. Я также как г-н в 64м пихал вручную пустую ссылку. Потом удалял. Иногда маялся, но редко, у меня нет длинных модулей пока. Работаю на малых и крохотных базах, однако, ваш метод возьму себе под крыло. немного под себя перенастроил - создал отдельный шаблон для спр и документа с автозаменой с "контдок" на:
#Если НЕ (Клиент Или Сервер Или ВнешнееСоединение) Тогда  //УДАЛИТЬ
	<?"ИмяПеременной"> = Документы.<?"", Документ>.ПустаяСсылка();
#КонецЕсли

Заодно вопрос, а как вы потом переносите с машину на машину свои шаблоны? Я вот взял шаблоны GROOVY за основу, как наиболее близкие мне, добавил что необходимым считал, да, только вот смотрю сейчас не на всех моих серверах одна и та же версия этих самых шаблонов в итоге. Как вы синхронизируете их?
Теперь буду осторожнее и надеюсь быстрее )
Еще раз сердечно благодарю за разборку такого деликатного метода.
85. trunix 29.02.12 17:58 Сейчас в теме
86. tormozit 5824 23.03.12 13:00 Сейчас в теме
А где же мой супер способ?
#Если _ Тогда
 ...
#КонецЕсли

Подробнее читайте здесь http://partners.v8.1c.ru/forum/thread.jsp?id=1001471#1001471
Способ несколько более рискованный чем с компилируемым Если, но я пользуюсь им.
88. Necytij 08.05.12 23:26 Сейчас в теме
(86) tormozit,
Очень интересует
#Если _ Тогда
отрабатывает нормально и на 8.1, и на 8.2? при всех типах соединения?
А то скобочку
не (клиент или сервер или внешнсоед)
для 8.2 писать надо другую... а так можно будет одну юзать.
89. tormozit 5824 09.05.12 10:41 Сейчас в теме
(88) Будет работать и в 8.1 и в 8.2 во всех режимах компиляции
87. tormozit 5824 23.03.12 13:08 Сейчас в теме
Кстати способ с Если Ложь Тогда я описал тут http://www.forum.mista.ru/topic.php?id=256586 еще в далеком 2007 году.
90. Flashill 327 14.06.12 07:52 Сейчас в теме
Тоже постоянно так обманывал конфигуратор, но за
#Если НЕ (Клиент Или Сервер Или ВнешнееСоединение) Тогда...
большое спасибо :)
91. echo77 1156 27.03.13 11:52 Сейчас в теме
Раньше так делал, правда без условия. И периодически забывал убрать, потом удивлялся почему не работает :-)
С условием можно и забыть про этот кусок и не убирать его
96. orefkov 1012 02.11.15 15:06 Сейчас в теме
У, какая старая тема.
Из свежих новостей.
Снегопат-Reborn позволяет такие типизирующие выражения прописывать сразу как комментарий:
Функция Некоторая Функция(Док, Таблица)
    //: Док = Документы.ВозвратМатериаловИзЭксплуатации.ПолучитьСсылку()
    Док. < тут выдаст методы и свойства ДокументСсылка.ВозвратМатериаловИзЭксплуатации
    //: Таблица = Новый ТабличныйДокумент
    Таблица. < тут выдаст методы и свойства типа ТабличныйДокумент

Фишка в том, что когда контекстная подсказка 1С получает текст модуля для анализа, снегопат заменяет "//:" на пробелы.
97. Sardukar 55 17.12.15 08:50 Сейчас в теме
Я вначале был в некотором шоке, но, почитав комменты, понял что народ это практикует и считает нормальным. Ладно, вам виднее. Я свой код засорять не буду, чтобы потом те, кто после меня читать его будут под стол не упали.
Оставьте свое сообщение

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

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

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

22.04.2020    4566    23    Infostart    2    

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

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

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

27.01.2020    19043    0    ids79    26    

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

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

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

15.01.2020    18462    0    John_d    22    

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

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

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

30.12.2019    13370    0    kuzyara    33    

Использование программных перечислений, ч.1: строковые константы Промо

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

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    35464    0    unichkin    45    

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

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

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

02.12.2019    14596    0    YPermitin    72    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

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

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    6757    0    Sibars    19    

Таблица значений. Нюансы

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

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    28148    0    Yashazz    45    

Вспомогательные инструкции в коде 1С Промо

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

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    27895    0    tormozit    100    

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

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

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

06.09.2019    39587    0    rpgshnik    62    

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

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

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

05.09.2019    41736    0    ids79    54    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    24369    0    YPermitin    24    

Оформление и рефакторинг сложных логических выражений Промо

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

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

20.09.2012    75390    0    tormozit    129    

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

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

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

03.09.2019    23088    0    YPermitin    80    

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

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

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

17.08.2019    28216    0    ids79    16    

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

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

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

08.08.2019    65015    0    ids79    40    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

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

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

11.07.2007    46272    0    tormozit    38    

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

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

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

02.08.2019    29243    0    avalakh    22    

Разбираемся с параметрами редактирования СКД

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

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    19702    0    json    12    

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

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

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

26.07.2019    48742    0    ids79    11    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

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

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    42284    0    tormozit    74    

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

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

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

17.07.2019    31443    0    ids79    27    

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

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

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

09.07.2019    23787    0    YPermitin    13    

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

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

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

04.07.2019    17668    0    SeiOkami    50    

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

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

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

25.04.2019    15370    0    m-rv    2    

Работа с настройками системы компоновки данных

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

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

02.07.2019    38374    0    ids79    10    

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

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

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

25.06.2019    45904    0    ids79    25    

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

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

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

11.06.2019    22797    0    dmurk    144    

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

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

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

16.04.2019    19146    0    m-rv    17    

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

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

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

16.05.2019    38365    0    YPermitin    30    

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

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

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

11.05.2019    26547    0    Eret1k    23    

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

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

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

07.04.2019    32008    0    ellavs    126    

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

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

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    28789    0    m-rv    21    

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

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

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

28.03.2019    25246    0    ellavs    88    

Трюки с внешними источниками данных

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

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    28828    0    YPermitin    53    

Ошибки при работе с хранилищем конфигурации и способы их решения

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

В статье собраны наиболее распространенные ошибки при работе с хранилищем конфигурации и способы их обхода и решения.

01.03.2019    33611    0    Смешной 1С    27    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

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

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

05.12.2017    26835    0    itriot11    34    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

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

Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

26.02.2019    20102    0    Vladimir Litvinenko    27    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

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

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    34557    0    ids79    9    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    73371    0    Serginio    108    

EnterpriseData – часть 2. Процесс выгрузки данных

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

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    24758    0    ids79    31    

Новый подход к обмену данными EnterpriseData

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

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

14.12.2018    37814    0    ids79    72    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

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

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    32380    0    ids79    40    

EnterpriseData - пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации

Практика программирования Обмен через XML v8 v8::УФ БП3.0 УТ11 Россия Бесплатно (free)

В статье подробно описан реальный пример доработки обмена данными через EnterpriseData (универсальный формат обмена) между конфигурациями УТ 11.4 и Бухгалтерия 3.0

16.11.2018    34193    0    ids79    40    

Программное заполнение пользовательских параметров и отборов СКД

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

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

13.11.2018    41272    0    Unk92    21    

Тестер: частые вопросы Промо

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

Ошибкам бой - тесты норма жизни!

25.07.2018    27498    0    grumagargler    26