Глюк в 1С 8 с зависанием (кешированием/буферизированием) обработки в памяти (не обновляется код)

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

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

103
Описание глюка с зависанием (кешированием/буфферизированием) обработки/формы в памяти (не обновляется код)

Ключевые слова: баг, глюк, фича, не обновляется код, циклические ссылки

1С:Предприятие 8.2 (8.2.13.219), Win XP, Win Seven
Из-за незнания этого бага я потратил пол дня: чистил кэши, перустановил несколько раз 1С на самый последний релиз, переустановил Windows, и эксерементировал с разными базами, разным обработками пытаясь вычислить в чем причина следующей проблемы: есть внешняя обработка, после ее выполнения закрываю ее, но 1С не закрываю, после этого что то меняем в коде, запускаем ее и пытаюсь выполнить новый код. Но не тут-то было!!! Обработка не видит новый код! Даже в отладчике становяь на нужный код я получаю что если передана например переменная - то ее проверка через "Вычислить выражение" показывает что переменной просто нет. Ощущение что обработка вызывается из виртуальной памяти, а не с диска. Эксперименты выявили что это происходит если в модуле обработки открыть произвольную форму данной обработки, например:
Форма = ПолучитьФорму("ДопФорма");
Форма.Открыть();

И все! Обработка с данным именем зависла в памяти! Если ее переименовать или перезапустить сеанс 1С то все нормально пока этот код не отработает
Если тот же код запустить из формы (пробоавал ту что по умолчанию) то все нормально будет.
Самое интересное однако дальше! Если сократить код в модуле обработке до такого:
ПолучитьФорму("ДопФорма").Открыть();
То все тоже будет нормально. Итак приходим к выводу что виновата переменная "Форма", и действительно стоит ее обнулить, и все опять нормально! Вот так:
Форма = ПолучитьФорму("ДопФорма");
Форма.Открыть();
Форма = "";

Удивительно что в 1С приходится следить за чисткой переменных после работы, даже Бэйсик в этом плане работает лучше. Похожее на это я встречал на 7.7 при использовании внешних компонент, но на это претензий нет, т.к. вроде бесплатно и не от производителя, к тому-же часто авторы говорят что созданные объекты нужно обнулять.

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

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

Продолжение от 30.05.2015:

Неожиданно вопрос повторился, на этот раз на грабли наступил более именитый разработчик "1С-Рарус" в своей обработке "Загрузка данных в "Бухгалтерия предприятия редакция 2.0" версий 2.0" - аналогично завели экспортные переменные "ФормаПараметров" и "ФормаСоответстий".

Итог: разработчики обнуляйте переменные с формами хотя бы в обработчике ПриЗакрытии()


Благодаря помощи сообщества, а именно пользователя Lara.Builova установлено что данная проблема описана в разделе ИТС "Методические рекомендации по конфигурированию" (46) из подраздела "Прочие", (50) - "Встроенный язык".

Вот выдержки присланные Lara.Builova:
Методика решения проблемы с открытием старой версии внешней обработки
В процессе разработки конфигураций иногда может возникнуть следующая ситуация.

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

Причина возникновения проблемы
Причина возникновения подобной проблемы заключается в самой обработке. Она возникает в том случае, если разработчик допустил возникновение циклических ссылок.

Рассмотрим ситуацию несколько подробнее. В режиме исполнения (1С:Предприятие) объект обработка существует в памяти в качестве реквизита формы обработки. При закрытии формы обработка прекращает свое существование.

Данная схема нарушается в двух случаях. На саму обработку возникла дополнительная ссылка, либо ссылка возникла на форму, в этом случае закрытие окна формы не означает уничтожение объекта - формы. Соответственно, остается в памяти и обработка.

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

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

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

Методика устранения проблемы
Даже следование всем рекомендациям не может застраховать от возникновения подобной проблемы.

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

Еще про циклические ссылки с ИТС:

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

Особенностью подсчета ссылок на объекты является возможность организации "циклической ссылки". Циклическая ссылка возникает, когда объекты начинают ссылаться друг на друга. Это приводит к ситуации, при которой ни один из объектов, участвующих в циклической ссылке, не будет уничтожен. В свою очередь это является причиной возникновения утечек памяти (memory leaks).

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

Полный перечень случаев возникновения циклической ссылки привести невозможно, приведем лишь некоторые примеры:

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

Ссылки в тему:
//infostart.ru/public/63392 - Кольцевые ссылки в скриптах 1С 

 

ЧАСТЬ 2.

Продолжения приключений Буратино в Стране Дураков

или зацикливание формы при ее программном переоткрытии

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

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

Закрыть();

Шаг 2. после закрытия открываем ту же самую форму той же самой обработки (слава богу обработка хранит в себе полное имя своего файла). Вроде очевидно что нужно делать так как делают сами разработчики 1С. В популярнейшей конфигурации Управление торговлей ред.10.3 самый очевидный пример мы найдем в механизме подключаемых внешних обработок/отчетов: Справочник.ВнешниеОбработки.Форма.ФормаСписка.Форма.Модуль в процедуре СправочникСписокВыбор() видим:

ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = ВыбраннаяСтрока.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Если ЭтоОбработка Тогда
	Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
Иначе
	Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
КонецЕсли;
Если Не Форма = Неопределено Тогда
	Форма.Открыть(); // ВОТ ОНО! Получение в переменную формы и открытие ее!
Иначе // дальше нас не интересует, но переменная Форма не обнуляется и дальше вы поймете почему

Переработав получаем вот такой компактный вариант:

ВнешниеОбработки.ПолучитьФорму(ИспользуемоеИмяФайла).Открыть();

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

Итак пример 1С-ков не позволяет получить новый экземпляр обработки.

Однако выход тут есть и очень простой - используем 2-й вариант обращения к обработке - сначала создадим ее, а потом уже получим форму (опять таки обойдемся без переменных, хотя это и не критично):

ВнешниеОбработки.Создать(ИспользуемоеИмяФайла).ПолучитьФорму().Открыть(); 

Проверяем и вуаля! Все работает!

ВЫВОД: забудьте про метод ПолучитьФорму() для внешних обработок/отчетов т.к. создание обработки все равно происходит (хотя ожидаешь что этого и не произойдет - должна же быть разница в работе методов раз они разные!) в чем легко убедится написав любое оповещение в модуле обработки. От него только проблемы и никакого толку (буду рад если кто-то аргументированно поправит меня)

103

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

Комментарии
Избранное Подписка Сортировка: Древо
1. red80 03.09.11 22:56 Сейчас в теме
Тоже наблюдал подобное, решал проблему перезагрузкой, не копался в причинах. Теперь буду знать, спасибо.
2. CaSH_2004 355 03.09.11 23:00 Сейчас в теме
(1)Я тоже на работе неделю назад с таким познакомился, но там было некогда. Зато когда такой глюк отловил дома тут я уж не стерпел и бросил все силы на отлов бага, в итоге весь ПК перетряхнул:)
Сильно напомнило о притче http://infostart.ru/public/57360/
3. anig99 2702 04.09.11 00:37 Сейчас в теме
Плюс за решение, но не баг. Баг известен ещё с 8.0 Именно поэтому у меня есть привычка часто менять номер версии обработки в заголовке окна.
4. CaSH_2004 355 04.09.11 11:42 Сейчас в теме
(3)Восхититеьно! К сожалению я, как и многие, не знал об этом. А это написано в официальном перечне ошибок 1С прилагаемый к платформе? Если нет, то повторения наступления на грабли неизбежны. Если да то удивляет почему разработчики считают что это не нужно исправлять? Так это решение было известно или только баг был известен?
5. anig99 2702 04.09.11 20:53 Сейчас в теме
(4) в официальных багах ошибки этой не видел. Видимо из разряда "видели, знаем почему, исправить не можем". Кроме того, само 1с редко балуется внешними обработками.

Есть ещё одна ошибка, которую не пишут. Иногда при открытии формы (отчета, справочника, документов и т.д.) она не выводится на экран. В списке окон появляется, на панели окон тоже. Но можно тыкать на название до посинения, но ничего не появится. Пока не нажмешь правой кнопкой на названии окна в панели окон и не выберешь пункт "Восстановить положение".
6. cool.vlad4 45 04.09.11 21:27 Сейчас в теме
(5) Ну, глюки с формами у 1С периодические. Довольно часто встречался глюк с подбором(в типовой), неправильные внутренние размеры формы по сравнению с внешними (как будто неправильная привязка), также решается с помощью "восстановить положение".
7. Abadonna 3835 05.09.11 03:45 Сейчас в теме
Баг вполне прогнозируемый. Модуль формы работает в адресном пространстве самой формы, форма при закрытии за собой подчищает. Модуль обработки работает в адресном пространстве всего приложения, там недочистили.
Другой вопрос: если надо просто открыть форму, зачем создавать промежуточную переменную? Для красоты?
ПолучитьФорму("ФормаБлаБла").Открыть() - никакого подвисания не вызовет.
Тут больше баг "чистых одноэснегов", вообще плохо представляющих как работает память.
Если просто открываем форму, то имеем при раскладе, описанном у автора:
Форма=ПолучитьФорму("ФормаБлаБла"); // получили беспонтновый указатель, который и будем хранить неизвестно зачем (и, как выяснилось, неизвестно сколько)
Если он нам еще может понадобиться - куда ни шло, а если только для Форма.Открыть() - просто расточительное программирование.
_______________________________
В сухом остатке:
За то, что автор разобрался в чем дело - плюс.
За что что ему вообще пришло в голову использовать конструкцию
Форма=ПолучитьФорму(); Форма.Открыть() - минус.
Итого: нейтралитет ;)
8. hogik 430 05.09.11 04:23 Сейчас в теме
(7)
Аркадий.
А "Форма", случайно, не является ключевым словом? А если объявить эту переменную явно в модуле обработки - глюк остаётся?
9. Abadonna 3835 05.09.11 04:28 Сейчас в теме
(8) Остается, потому что это почти "глобальный" модуль.
Получили (и запомнили )указатель в системе, после закрытия обработки указатель не подчистился (это уж разработчиков косяк), так и завис
В явном виде Форма=""; чистит этот указатель после Форма.Открыть(), ссылок не остается, и все ОК.
10. hogik 430 05.09.11 04:37 Сейчас в теме
(9)
Чистит при Форма="" - понятно. Но если её объявить явно - что будет? Или в модуле обработки написать и вызывать функцию, а в ней уже делать вызов ПолучитьФорму() - должно, вроде, зачистить при завершении функции. Или - нет?
11. Abadonna 3835 05.09.11 04:38 Сейчас в теме
(10)
Но если её объявить явно - что будет?

Вова, я ж, как-никак, НС бывший, любопытный :D
Проверил: ОСТАЁТСЯ
Да! А в процедуре локальную - надо попробовать
12. hogik 430 05.09.11 04:44 Сейчас в теме
(11)
"НС бывший" - и это чувствуется. Типа, сам уже проверил, и никому не скажу... :-)
Проверяй дальше. Жду результат... ;-)
13. Abadonna 3835 05.09.11 04:45 Сейчас в теме
+(11) Для особых извращенцев :D
Процедура ОткрытьМоюФорму()
Перем Форма; // эта переменная локальная внутри процедуры
Форма=ПолучитьФорму("Форма1");
Форма.Открыть();

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


Сообщить("РазДваТри555666");// а это, чтобы проверять, что код меняется...
ОткрытьМоюФорму();
____________________
Вот так (тоже прогнозируемо) - переменная чистится, зависания нет

И еще интереснее: можно в процедуре и не объявлять переменную, т.е просто убрать там Перем Форма;

Вывод: не надо баловаться с переменными в теле модуля, они могут и не подчиститься, а вот внутри процедур модуля - сколько угодно.
14. hogik 430 05.09.11 04:51 Сейчас в теме
(13)
Сам ты извращенец после таких слов: "это почти "глобальный" модуль". ;-)
Спасибо НС-у от СНС-а за проведенное научное исследование... :-)
15. Abadonna 3835 05.09.11 04:53 Сейчас в теме
(14)
от СНС-а

СНС, ваще-то я завлабом был :D
16. hogik 430 05.09.11 04:57 Сейчас в теме
(15)
Ну, вот, опять. Все МЫ - были... Забудь...
32. CaSH_2004 355 05.09.11 13:06 Сейчас в теме
(7)Abadonna пишет: если надо просто открыть форму, зачем создавать промежуточную переменную? Для красоты?

Странный ты спец! Я же ясно написал что это пример, ситуация была такая что это потребовалось, если любопытно то я делал для своей обработки аналог из типовых ЗУП ред.2.5 и КА ред.последняя "Обработка.СообщенияВыполняемыхДействий".

Abadonna пишет: ПолучитьФорму("ФормаБлаБла").Открыть() - никакого подвисания не вызовет.

Именно это я и расписал в статье

Abadonna пишет: Тут больше баг "чистых одноэснегов", вообще плохо представляющих как работает память.

Если так подходить то можно требовать от любого водителя знания как чинить мотрор машины и знание всех принципов машиностроения, а так я могу сказать что лучше езжу на машение чем авто-слесарь, так же как он лучше меня чинит ее. Это разделение обязанностей. 1С для того и придумали чтобы могли пользоваться люди которые не собираются кодить в 0-м цикле распределяя память и чистя все за собой:)

Abadonna пишет: Форма=ПолучитьФорму("ФормаБлаБла"); // получили беспонтновый указатель, который и будем хранить неизвестно зачем (и, как выяснилось, неизвестно сколько)
Если он нам еще может понадобиться - куда ни шло, а если только для Форма.Открыть() - просто расточительное программирование.


Спасибо что тут признал что ВОЗМОЖНО это мне нужно, а не просто фигней страдаю:)
33. Abadonna 3835 05.09.11 14:17 Сейчас в теме
(32)
Именно это я и расписал в статье

Я и не утверждал, что ты это НЕ писал.
А вот действительно ли
это мне нужно
- откуда я знаю?
Может действительно "фигней страдаешь"?
А то я не знаю как копипастят "классический код"!
А его студентики корябали ;)
Вообще-то я не конкретно про тебя писал
"чистых одноэснегов"

_______________
то можно требовать от любого водителя знания как чинить мотрор машины

Вот когда ездили те, кто знал, как чинить мотор, можно было еще ездить. А сейчас на дорогах одни лодочники итальянские
:D Вот как раз сейчас из окна смотрю: как же можно было умудриться на регулируемом пешеходном переходе столкнуться под углом 90 градусов?
Всё, пробочка гарантирована
44. CaSH_2004 355 06.09.11 10:26 Сейчас в теме
(33)Удивительно! Почему же если не знаеш надо сразу худшее предпологать, и при этом об этом тут-же объявлять вслух?
45. Abadonna 3835 06.09.11 11:40 Сейчас в теме
(44)
Удивительно, что ты именно на меня имеешь какие-то обиды. На того, кто последовательно как раз и защищает мысль, что это баг 1С
В отличие от:

Люди вы что никогда не слышали термина "Циклическая ссылка"!!! Это азы!!!


А (0) случайно, не объявлена в начале модуля обработки, т.е. время ее жизни не равно ли времени работы обработки?

А я просто не выбираю имена

На первые два лично я как раз бы жестоко оскорбился.
Воистину: ни одно доброе дело не останется безнаказанным! :D
47. CaSH_2004 355 06.09.11 12:19 Сейчас в теме
(45) Ну у тебя на мой взгляд получилось жестче. Хотя я не в обиде, просто странно что это тут все так друг другу тычат носом кто чего не знает. Вроде сайт предназначен чтобы узнавать новое с минимумом усилий. А получается тыкалово. Как-то неприятно. Естественно не все все знают, но можно же промолчать или посоветовать куда рыть. Нет же - все начинают вопить, да ты ниче не знаеш, да это азы, ты страдаеш фигней! Это как-то унижает знате-ли. Когда вы у прохожего спрашиваете как кудато пройти - такого вы не услышите, а представььте себе аналагичный ответ, какая будет ваша реакция - возможно вы даже физически ответите, а не только устно.
Почему-то все думают раз разговор происходит не в реале, можно спокойно друг-друга оскорблять, типа анонимно это не так болезненно другой стороне, но так же приятно и безопасно нам.
Ладно это все лирика, размышления вслух.
(46) Действительно, повидимому все есть. Виноват, не читалю ИТС, хотя и есть они, код действительно содержит ситуацию описанную в ИТС, и повидимому попадает под понятие "возникновение циклических ссылок", я отмечу это в посте чтобы другим таким же "гениям" как я было легче найти проблему.
Есть же такие трудолюбивые спецы которые читают все что написано на ИТС, и помнят и понимают все что там написано! Завидую вам от души
50. Lara.Builova 06.09.11 12:28 Сейчас в теме
(47) Еще про циклические ссылки с ИТС:
Особенности хранения значений в переменных модулей объектов и форм
В платформе 1С:Предприятие 8 используется стратегия управления временем жизни объектов, основанная на подсчете ссылок на объекты - reference counting. Данная стратегия заключается в следующем. Каждый объект платформы содержит счетчик ссылок. При появлении ссылки на объект (объект присваивается какой-либо переменной) происходит увеличение счетчика на единицу, при уничтожении подобной ссылки - значение счетчика на единицу уменьшается. Объект автоматически уничтожается, и память, занимаемая им, освобождается в момент, когда счетчик ссылок объекта становится равен нулю.

Особенностью подсчета ссылок на объекты является возможность организации "циклической ссылки". Циклическая ссылка возникает, когда объекты начинают ссылаться друг на друга. Это приводит к ситуации, при которой ни один из объектов, участвующих в циклической ссылке, не будет уничтожен. В свою очередь это является причиной возникновения утечек памяти (memory leaks).

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

Полный перечень случаев возникновения циклической ссылки привести невозможно, приведем лишь некоторые примеры:

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

Если циклические ссылки не случайны, а необходимы по замыслу разработчика, то переменные нужно очищать, но при этом
необходимо определить момент для ее разрыва, чтобы объекты могли быть уничтожены нормальным образом
afk; Spartan; +2 Ответить
52. CaSH_2004 355 06.09.11 12:32 Сейчас в теме
(50)Дайте хотя бы ссылку где об этом почитать? На каком ИТС в каком разделе и какая статья, я хоть в статье это укажу, всем полезно будет
59. Lara.Builova 06.09.11 12:57 Сейчас в теме
(52) Раздел ИТС "Методические рекомендации по конфигурированию" (46) из подраздела "Прочие", (50) - "Встроенный язык". Названия статей выделены жирным в цитатах.
51. Abadonna 3835 06.09.11 12:31 Сейчас в теме
(47)
Есть же такие трудолюбивые спецы которые читают все что написано на ИТС, и помнят и понимают все что там написано! Завидую вам от души

Да, офигеть! Они и ЖКК, наверное, читают :D
Знавал я одного такого читальца - выгнали за профнепригодность.
54. anig99 2702 06.09.11 12:37 Сейчас в теме
(51) на ИТС тоже полезное иногда печатают (:
84. AlexO 127 17.10.13 10:29 Сейчас в теме
(54) anig99,
на ИТС тоже полезное иногда печатают

Иногда у меня впечатление - что платформу пишут одни "студенты", а потом более опытные описывают работу такой платформы на ИТС - с багами, как обойти, что делать, чтобы "не вляпаться"... Но, видимо, или "более опытных" не подпускают к разработке платформы и исправлению всех этих косяков, и дают им "порезвиться" только в статьях на ИТС, или первые махнули рукой на вторых - "пусть делают, что хотят, это уже клиника".
А справку к платформе, похоже, не дописывают пишут совсем третьи "лица студенческого типа" :)
CaSH_2004; +1 Ответить
55. CaSH_2004 355 06.09.11 12:38 Сейчас в теме
(51)Несмотря на правду это слишком саркастично. Стиль знакомый.
Думаю стоит иметь ввиду мировую практику, а именно: бывают голые теоретики и есть практики. Это как и любой перегиб ведет к проблемам, но если использовать таланты людей правильно то результат неплохой. Сходу не приведу примеры т.к. не компьютер, но есть же много открытий которые сделаны теоретиками но внедрены практиками, так что каждая работа важна, а чем заниматься самому - на то и дана жизнь, чтобы разобраться как получить от нее кайф! Прыгать как ямакаси по домам с риском для шеи или изучать космос. На мой взглаяд это дело каждого - лишбы была хоть какая-то отдача, а не просто паразитическое существование.
17. alexk-is 6425 05.09.11 06:21 Сейчас в теме
Вот ещё ситуация, которая не подчищается во внешних отчетах и обработках.
Прикрепленные файлы:
18. anig99 2702 05.09.11 06:50 Сейчас в теме
Дааааа... Кстати. Чуть не забыл. Чистить переменную форма можно только если она задана явно... А если форма открывается как основная, то помогают только спец маркеры на форме. Например, регулярно меняемые номер версии в заголовке окна.
19. i132 115 05.09.11 10:33 Сейчас в теме
по моему это где-то описывалась на ИТС - про кэширование объектов
20. PowerBoy 2921 05.09.11 11:55 Сейчас в теме
Люди вы что никогда не слышали термина "Циклическая ссылка"!!! Это азы!!! Описано и в документации и на ИТС еще с 8.0.
21. Abadonna 3835 05.09.11 12:01 Сейчас в теме
(20) Как бы они ее там не называли, нормальная прога (обработка) обязана за собой всё почистить в секции Finalization- вот это АЗЫ
23. PowerBoy 2921 05.09.11 12:02 Сейчас в теме
(21) В Экселе сделай циклическую формулу - и объяви что баг нашел. :)
24. Abadonna 3835 05.09.11 12:07 Сейчас в теме
(23)Я-то как раз и не объявлял, что баг нашел. Мало того, четко написал, что он прогнозируемый.
Но: покажи-ка на пальцах чего тут циклического? Обе формы закрылись, ничего не ругнулось.
В каком адресном пространстве заторчала эта ссылка? Почему после закрытия всех форм обработки она не самоликвидировалась?
А ДОЛЖНА была
/13/ читал?
26. PowerBoy 2921 05.09.11 12:14 Сейчас в теме
(24)
1.Сам вызов формы из модуля объекта я считаю ошибкой.
2.1с не может удалить объект, если у него есть ссылка на подчиненные себе объекты, конкретно как это реализуется у 1С надо смотреть ИТС.
29. PowerBoy 2921 05.09.11 12:17 Сейчас в теме
(26) + То бишь "родитель" формы является тем же объектом, кому принадлежит модуль объекта. :)
31. Abadonna 3835 05.09.11 12:21 Сейчас в теме
(29) Значит, 13 ты все-таки не прочел.
Там те же условия:
"родитель" формы является тем же объектом

но с маленькой разницей - жизнь переменной только внутри процедуры. И НЕ ВИСНЕТ
А так: все та же "циклическая"
22. cool.vlad4 45 05.09.11 12:02 Сейчас в теме
(20) Ну, глюк из 6 это никакая не "Циклическая ссылка". Замечено при изменении размера окна (обычно, когда пользователь работал совместно другим окном - например icq).
25. artbear 1161 05.09.11 12:13 Сейчас в теме
А (0) случайно, не объявлена в начале модуля обработки, т.е. время ее жизни не равно ли времени работы обработки?
Тогда это точно циклическая ссылка.
(13) косвенно подтверждает это предположение.
27. Abadonna 3835 05.09.11 12:15 Сейчас в теме
(25)
случайно, не объявлена в начале модуля обработки

Когда я проверял, они у меня и случайно не была объявлена, и специально потом объявлял. Без разницы - висняк. Время жизни - до перевключения 1С.
Внутри процедуры - благополучно дохнет, как и должна
28. Abadonna 3835 05.09.11 12:17 Сейчас в теме
1.Сам вызов формы из модуля объекта я считаю ошибкой.
2.1с не может удалить объект, если у него есть ссылка на подчиненные себе объекты, конкретно как это реализуется у 1С надо смотреть ИТС.

Еще раз повторю: всякая уважающая себя прога (обработка) ОБЯЗАНА чистить за собой. Если не чистит - баг
30. PowerBoy 2921 05.09.11 12:20 Сейчас в теме
(28) Если баг описан в документации, то это фича. :)
34. AndrewEv 18 05.09.11 21:57 Сейчас в теме
Вот я, например, всегда все переменные небазового типа закрываю:
ValList = UnDefined;
Что по-русски
СпЗнач = НеОпределено;
Это мне не позволило познакомится с багом...
37. iov 401 05.09.11 23:30 Сейчас в теме
(34) Жил да был идеальный программист и написал он идеальный код. Но прошло время и надо было изменить идеальный код и пригласили программиста (хороший мальчик - знакомый студент) и сказал он что программист - плохой и переписал код - но глючил его код и мальчик переписал глобальный модуль, но и тогда не заработал код. И позвали они друго-го программиста и то дописал код и написал еще немного.... и длилось так годами и заработали программисты денег и ругали они предыдущих. Смысл в том что вокруг рыночные отношения и код писать грамотно-не всегда выгодно - порой быстренько на коленке выгодней... Я за хороший код но как вы объясните заказчику что ваш код круче но дороже потому что он гипотетически не содержит ошибок?

(33) И про машинки верно - вот не стукнись они не заработают люди денег а если все будут по правилам ездить? На чем производителям зарабатывать? У кого нефть отнимать чтоб ездить? Есть мнение что вечные вещи - убьют мир. Так вот 1С с её глюками и недоделками - прям свеча зажигания экономики - прогеры не так мало зарабатывают жеж.

(0) Ну вот теперь более мощный сервер тебе не светит - 1С же не виснет ;)
42. Abadonna 3835 06.09.11 04:23 Сейчас в теме
(37)
как вы объясните заказчику что ваш код круче

Совсем недавно:
- В такой-то накладной неверно посчитан НДС!
-?
Смотрим: точно, блин, не тот, что должен быть.
Оказалось: франь, который работал до нас, приделал кнопку "Убрать автоматические скидки"
Скидки обнуляются, потом стоит:
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(...)
А про то, что надо бы еще:
ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(...) он "забыл"
Полтора года (!!!) они так работали, пока какой-то покупатель их носом не ткнул.
Благо эту кнопку не так часто нажимали, однако за 8 месяцев документов 80 набралось.
60. iov 401 06.09.11 14:46 Сейчас в теме
(42) истории из жизни - это хорошо... но ведь врать тоже их расказывал прежде чем хрень написать - и денег он срубил - и ты потом срубил... А напиши он правильно тыб и не заработал- верно?
61. Abadonna 3835 06.09.11 15:02 Сейчас в теме
(60)
и денег он срубил - и ты потом срубил.

Хм... Да я ж всегда и утверждал, что все МЫ (одноэснеги) - беспонтовая хрень, существующая благодаря идиотской политике государства.
Ничего не производим, плодим баги, исправляем свои и чужие и т.д...
От нас, бухов и налоговиков обществу пользы ноль. Зато все при деле и при бабках ;)
62. iov 401 06.09.11 15:04 Сейчас в теме
(61) как в принципе от множества других профессий (типа Ахранников и кучи пилиционеров ) мы хоть что-то производим (баги тоже продукт - полуфабрикат)
63. iov 401 06.09.11 15:11 Сейчас в теме
(61) Предлагаю собраться где нить с чашкой пива и посыпать голову пеплом и покаяться :)
35. Lara.Builova 05.09.11 22:30 Сейчас в теме
А я просто не выбираю имена переменных из списка зарезервированных системой.
Прикрепленные файлы:
36. Abadonna 3835 05.09.11 23:02 Сейчас в теме
(35)
А я просто не выбираю имена переменных из списка зарезервированных системой.

Пришла Лора и сразу все проблемы решила.
Дело-то, оказывается, в имени переменной, а вовсе не в том, что тут все дурачки написали.
Для справки особо одаренным: когда я тестил, эта переменная у меня называлась "Ф".
Это тоже зарезервировано?
Надо написать в 1С, а то что они, дурачки, не следуют твоим рекомендациям?:
Форма (Form)
Открыть (Open)
Синтаксис:

Открыть()
Описание:

Открывает форму и делает ее окно активным.

Доступность:

Толстый клиент.
Пример:

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

Показать
39. Lara.Builova 06.09.11 00:11 Сейчас в теме
(36) не знаю, откуда ты это берешь, в СП примеры такие:
Товары = Справочники.Номенклатура;
ФормаСписка= Товары.ПолучитьФорму("ФормаСписка");
Если Не ФормаСписка.Открыта() Тогда
    ФормаСписка.Открыть();
КонецЕсли;
ИЛИ
Клиенты = Справочники.Контрагенты;
НовыйКлиент= Клиенты.СоздатьЭлемент();
НовыйКлиент.ПолучитьФорму().Открыть(); 

И получить форму списка:
Товары = Справочники.Номенклатура;
ФормаСписка= Товары.ПолучитьФормуСписка();
Если Не ФормаСписка.Открыта() Тогда
    ФормаСписка.Открыть();
КонецЕсли;

Ни в одном примере не встретилось объявление переменной "Форма". Может плохо искала.
40. Abadonna 3835 06.09.11 03:29 Сейчас в теме
(39) На! Смотри! Если это не СП, то я - папа Римский.
Движок 8.2.13.202. Не супер свежак, но все-таки...
Прикрепленные файлы:
38. iov 401 05.09.11 23:33 Сейчас в теме
(0) P.S. Всем спасибо - глюк смачный - вон как его обмусолили и облизали тарелку... Ищи еще... >громко стуча ложкой по столу<
41. Abadonna 3835 06.09.11 03:42 Сейчас в теме
И еще смотри:

Может в твоем СП переменная вообще "шаршы пішін" названа?
А для полного тебе счастья (ты ж любишь, когда все стандартно-одноэсовски) - второй рисунок, поиск по типовой УТ
Прикрепленные файлы:
43. CaSH_2004 355 06.09.11 10:12 Сейчас в теме
Lara.Builova пишет:

А я просто не выбираю имена переменных из списка зарезервированных системой.

Да что же вы все так вцепились в то что я написал как ПРИМЕР!!! В рабочей ситуации все работает совсем по другому, совсем другие условия, другие переменные, только смысл тот-же.
46. Lara.Builova 06.09.11 12:04 Сейчас в теме
(43) Вообще то (35) постом я отвечала на (34) :)
Что касается самой статьи:
есть внешняя обработка, после ее выполнения закрываю ее, но 1С не закрываю, после этого что то меняем в коде, запускаем ее и пытаюсь выполнить новый код. Но не тут-то было!!! Обработка не видит новый код! Даже в отладчике становяь на нужный код я получаю что если передана например переменная - то ее проверка через "Вычислить выражение" показывает что переменной просто нет

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

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

Причина возникновения проблемы
Причина возникновения подобной проблемы заключается в самой обработке. Она возникает в том случае, если разработчик допустил возникновение циклических ссылок.

Рассмотрим ситуацию несколько подробнее. В режиме исполнения (1С:Предприятие) объект обработка существует в памяти в качестве реквизита формы обработки. При закрытии формы обработка прекращает свое существование.

Данная схема нарушается в двух случаях. На саму обработку возникла дополнительная ссылка, либо ссылка возникла на форму, в этом случае закрытие окна формы не означает уничтожение объекта - формы. Соответственно, остается в памяти и обработка.

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

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

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

Методика устранения проблемы
Даже следование всем рекомендациям не может застраховать от возникновения подобной проблемы.

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

Так что может лучше проанализировать код еще раз... :oops:
inanity; Yasen; Spartan; +3 Ответить
53. anig99 2702 06.09.11 12:36 Сейчас в теме
(46) а ведь эту статью с ИТС здесь уже на форуме выкладывали. Только сейчас и вспомнил.
48. Abadonna 3835 06.09.11 12:20 Сейчас в теме
(0) Во! А ты на меня обижаешься. :D
В /13/ код проанализирован, показано, что именно такой код, но со временем жизни переменной в пределах процедуры никаких проблем не вызывает.
А они тебе так и будут талдычить про "проанализировать".
49. CaSH_2004 355 06.09.11 12:24 Сейчас в теме
Кстати не тольько я не знаю про "цикличексие ссылки", я нескольких знакомых перед этим опросил - все тоже без понятия были, а читать горы ИТС и другой документации не зная даже какие слова ключевые - бесполезное дело как показывает практика, ну в 20% получалось остальное быстрее самому вычислить.
(48) Да я без обид конкретно на тебя, т.к. ты не один такой, вы все тут как с одной сковородки слезли :) ошпаренные какие-то
56. Abadonna 3835 06.09.11 12:47 Сейчас в теме
:D вот вам, плиз. Типовая УТ, модуль ОБЪЕКТА Отчет.РапортРуководителю
// Процедура расшифровки показателя "Количество неисполненных заказов покупателей"
//
Процедура Заказы_НеисполненныеЗаказыПокупателейРасшифровка(Параметры)

Расшифровка = Параметры["Расшифровка"];
.......................
Форма = ОтчетРасшифровка.ПолучитьФорму();
Форма.ОбновитьОтчет();
Форма.Открыть();

КонецПроцедуры // Заказы_НеисполненныеЗаказыПокупателейРасшифровка()

Правда, как и в /13/, внутри процедуры.
Что как раз и подтверждает то, что я (в жизни не читавший никаких ИТС-ов) изложил:
Вывод: не надо баловаться с переменными в теле модуля, они могут и не подчиститься, а вот внутри процедур модуля - сколько угодно.
57. CaSH_2004 355 06.09.11 12:54 Сейчас в теме
(56)Вот упертый, да не баловался я, мне как раз нужно было чтобы переменная "Форма" жила все время жизни обработки, а не во время отработки процедуры. Оказалось что нужно явно убивать такую переменную - все КОНЕЦ ВОПРОСА! Спасибо всем за внимание и понимание.
58. Abadonna 3835 06.09.11 12:57 Сейчас в теме
(57)Это ты упертый!!!!!!!!!!!!!!!! Или у тебя мания величия - всё на себя примеряешь?
Вообще не о тебе конкретно разговор идет
64. Spartan 337 06.09.11 15:18 Сейчас в теме
(56) В статье написано "нельзя помещать в реквизит обработки или нелокальную переменную ее модуля", "хранение в переменной модуля объекта". В твоем примере переменная - локальная, время жизни - процедура.
Но баг неочевидный, согласен - я тож ИТС не читаю... :D
65. LeaNaeD 11 06.09.11 17:35 Сейчас в теме
Парни, там все сложнее с этим багом, не в форме дело. Точнее не только в форме.

В общем сейчас невольно воспроизвел этот баг.

Беру стандартный отчет "Продажи" из конфигурации (УТ 10.3, платформа 8.2.14.519), сохраняю как внешний отчет, открываю его в конфигураторе, делаю маленькую приписку - новый показатель, рассчитывающийся по некоей формуле с использованием переменной в запросе. Ну и, как полагается, косячу (куда уж без этого)- устанавливаю построителю отчета значение переменной уже после того, как отчет, собственно формируется и выводится в форму отчета. Запускаю предприятие, проверяю отчет - бабах выскакивает ошибка. Екарный бабай, надо же было такую ошибку сделать. Перехожу в конфигуратор (он все еще открыт в соседнем окне, обработка тоже не закрыта, в предприятии ни на какие кнопки в окне с ошибкой отчета не нажимал - пусть висит, не мешает же). Исправляю ошибку, сохраняю отчет. Понятное дело, без перезапуска запускается все та же старая косячная версия. Перезапускаю предприятие. Чу! Все та же ошибка выскакивает! Ладно, выхожу из предприятия, выхожу из конфигуратора, снова захожу в конфигуратор и предприятие. И опять та же самая ошибка!

Теперь внимание, самое главное - открываю мой отчет в конфигураторе и вуаля! В этом отчете ОТСУТСТВУЮТ последние изменения, связанные с исправлением косяка в коде! Снова правлю отчет, сохраняю, опять выхожу из предприятия и захожу снова, запускаю отчет - работает!

А вы говорите - формы, формы. Тут какой-то комплексный косяк платформы.

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


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


Извиняюсь за стиль написания, уставший малость. Последние комментарии не читал, извиняюсь также если кто-то подобное уже описал ранее.
71. Yashazz 2891 14.09.11 00:51 Сейчас в теме
(65) Такое и на 8.1 бывало, и на 8.2 бывает. Иногда действительно виновата сеть - отваливается логический диск, что на некоей машине в сети, путём по которому открывали в конфигураторе и/или предприятии внешку, и вуаля. Приходится переоткрывать по полному сетевому пути.
А вообще, у нас этот глюк легко парируется загрузкой обработки/отчёта в справочник "Внешние..", благо он сейчас почти везде в той или иной форме бывает, и запуском оттуда. Глюк исчезает напрочь. Ну и версификация, написанная прямо в заголовке формы, чтоб проверить, с кем имеешь дело в данном запуске - наше всё при отладке.
66. cool.vlad4 45 06.09.11 17:47 Сейчас в теме
не иначе, из кеша в файл, а не из открытой в конфигураторе внешней обработкой/отчетом
Сообственно вы описали всем известный, даже не знаю, баг ли? Формы сабжа , точно здесь не причем. Вы базу по сети гоняете? Если да, то не рекомендую работать в режиме конфигуратора по сети, - либо напрямую, либо через терминал(но не сервере 1С предприятия, где все работают). ...ну и чистить каталоги...
67. LeaNaeD 11 06.09.11 18:02 Сейчас в теме
(66)

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


Было бы ни при чем, если бы проблема (точнее, комбинация описанной в теме проблемы с описанной мной) не начала повторяться с таким упорством как раз после перехода на указанную выше версию платформы. Режим совместимости с 8.1 на 8.2 меняли еще на 13 релизе, насколько я помню. До этого года 1,5-2 на платформе 8.1 все работало отлично, уж таких выкрутасов не замечал.
68. CaSH_2004 355 07.09.11 00:25 Сейчас в теме
(67)Поддерживаю насчет возникновения глюков при переходе к 8.2, у меня они начались при переходе на 8.2 в принципе - вываливалась с ошибкой дампа 1С при сохранении неправильного кода, т.е. если есть ошибка кода и нажимаеш "записать", проверяется синтаксис, если есть ошибки предлагается их исправить, если жмеш "нет" то нормально работаем дальше, если "да" - то спокойно возникает ошибка с записью в дамп - и досвидания - вся работа потеряна. Причем это не в 100% случаях а где то в 70%, в остальных все нормально было, при этм 8.1 работало прекрасн. со временем менялись релизы платформы, и вроде поутихла проблема, зато иногда начала 8.1 так же себя вести, правда редко 8-10% при записи или работе. Складывалось впечатление что 8-ка становится глюком как Винда, ложится на ура, и очень нестабильна. Счас слава-богу вот уже полгода как стабильна на 90%. Но скажем 1С 7.7 стабильна на железно на 95%, для меня. Хотя если с компонентами играться то всякое получалось. А 8.1 до 8.2 работала как часики, очень доволен был последними релизами.
А насчет работы без терминалки :) кто-то тут где-то на полном серьезе советовал не сохранять (динамично) изменения при работе в базе других пользователей, типа конфа может не обновиться у тех. На мой взгляд - это то же самое что не выходить на улицу, а вдруг машина переедет!
Ребята от всего не убережешся, можно констатировать глюк, но жить и работать надо, а не рассказывать друг-другу страшные сказки что с кем приключилось.
85. AlexO 127 17.10.13 10:37 Сейчас в теме
(68)
кто-то тут где-то на полном серьезе советовал не сохранять (динамично) изменения при работе в базе других пользователей

Вообще-то, правильно советовали - это может привести (и очень часть приводит) к ошибкам в работе вплоть до краха структуры конфы. Т.к. работа с временными файлами (которые пользуются активно 1С везде и всюду - и при сохранении/обновлении конфигурации в том числе) до сих пор не освоена 1С даже до уровня "чтоб работало".
Все-таки, динмическое обновление не зря называют "демоническим", и его использование - почти всегда выходит боком. Особенно на платформе 8.2 и всех остальных.
87. CaSH_2004 355 17.10.13 13:35 Сейчас в теме
(85) Ну а меня мама учила в детстве не переходить дорогу на красный свет, однако когда я вырос и вижу что машин нет я спокойно перехожу - я не прав? А вы как поступаете в таком случае?
Если исходить из рекомендаций типа - "это опасно так не делайте", то:
1. нельзя во первых пользоватся 1С - можно потерять базу
2. нельзя пользоватся ПК - можно потерять все данные
3. нельзя пить, курить, и все такое - можно повредить здоровью
Ну а вывод: нельзя жить - это смертельно - никто еще не выжил :)

Так на каком "нельзя" остановится? Я предпочитаю смотреть по ситуации - насколько это критично. Если для меня важнее внести изменения динамически, то и фиг с ними рисками - если они этак 0,0001%, если будет 1% я подумаю, если 10% я перестрахуюсь полюбому
88. AlexO 127 17.10.13 13:50 Сейчас в теме
(87)
я спокойно перехожу - я не прав?

да, не прав, потому как машина движется намного быстрее, и оценка "она еще далеко" может быть очень субъективна. А вообще лучше всегда дожидаться "своего" света светофора. И брать пример в этом с немцев.
А вы как поступаете в таком случае?

Прехожу почти в гордом одиночестве в хвосте "быстроперебегающих-недождавшихся" зеленого сигнала.
1. нельзя во первых пользоватся 1С - можно потерять базу

Вот кто бы прислушался, а не к агитации 1С...
2. нельзя пользоватся ПК - можно потерять все данные

Для этого есть сервера, резервное копирвоание, ИБП и прочая, и прочая.
3. нельзя пить, курить, и все такое - можно повредить здоровью

Ну это совсем к 1С не имеет отношения. Даже косвенного :)
Ну а вывод: нельзя жить - это смертельно - никто еще не выжил

Вот именно такой лозунг надо повесить на всех продуктах 1С :)
то и фиг с ними рисками - если они этак 0,0001%

Дело не в процентах, а в недоработках "любимой фирмы": бьются временные файлы, отслеживания их корректности и правильности структуры нет и не было, в результате - вне зависимсоти от процента изменений портится вся конфа с данными, так как все идет одним куском.
89. CaSH_2004 355 17.10.13 14:37 Сейчас в теме
(88)
да, не прав, потому как машина движется намного быстрее, и оценка "она еще далеко" может быть очень субъективна.

Уважаемый - не передергивайте, я специально указал что МАШИН НЕТУ чтобы вы не придрались, вы благоволучно это проигнорировали
Являясь водителем в густонаселенном городе (3-й в России по количесту машин на 1000 чел.) и ездя бстрее среднего я со своей СУБЪЕКТИВНОСТЬЮ умудряюсь рассчитать время реакции до 1 сек. другого водителя, и спокойно уворачиваюсь от некоторых "неадекватных" поэтому ходя пешком я прекрасно знаю на что способна машина и на что способен я. Случайно на вас может упасть кирпич с крыши дома т.к. вы ее не видите когда идете рядом, но переехать случайно машина не может если вы смотрите по сторонам и при этом думаете чтобы под нее не попасть.

вне зависимсоти от процента изменений портится вся конфа с данными, так как все идет одним куском.

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

Так же и я спокойно делаю динамическое обновление и радуюсь жизни не обращая внимание на грозные причитания "перестраховщиков по жизни". Бэкапы делаются, от всего не перестрахуешся - так чего настаивать на усложнении жизни?
90. AlexO 127 17.10.13 14:39 Сейчас в теме
(89)
Так же и я спокойно делаю динамическое обновление

База у Вас маленькая? Иначе бы не рассуждали так радужно, если в альтернативе - несколько часов грузить базу из архива, да плюс потерянные часы набранных документов, за которые тоже кто-то должен нести ответственность.
92. CaSH_2004 355 17.10.13 14:42 Сейчас в теме
(90)
База у Вас маленькая

Для SQL - да, для файлового возможно и нет - 2-3 Гб.
Ну так я про то и говорю в который раз что все зависит от СИТУАЦИИ - а вы говорите про ВООБЩЕ. А потом начинаете на нюансы ссылатся. Это неверно в корне.
93. CaSH_2004 355 17.10.13 14:45 Сейчас в теме
+ (92) А в SQL базе порядка 20 Гб (500 доков в день в основном офисе и еще 2 узла РБД) - тоже плевал я на предостарожности, иначе я буду всю жизнь вносить изменения и меня выгонят как неудачный пример программиста если я буду ждать до ночи пока все выйдут (фирма работает в режиме 8-00 по 20-00 7/7 и 365/365 :)
91. CaSH_2004 355 17.10.13 14:41 Сейчас в теме
(88)
И брать пример в этом с немцев.

Уважаю немцев за их четкость (по слухам), однако у кажжой нации свои плюсы. Войну с ними (и другими) мы выиграли именно потому что плевали на все, в том числе и на слово "нельзя" и "невозможно". Просто делаем и все. А если бы сильно задумывались то наверно и не делали бы этого, и не выиграли бы там где все проигрывали.
95. AlexO 127 18.10.13 10:20 Сейчас в теме
(91)
мы выиграли именно потому что плевали на все, в том числе и на слово "нельзя" и "невозможно".

Им просто надо было подождать несколько десятилетий, и сейчас бы им продали все и вся. Даже без всякой войны.
(92)
А потом начинаете на нюансы ссылатся

Нюанс как раз у Вас. Что не отменяет разрушительного действия ДО. У нас даже кэш пользователя - и то бьется без всяких причин. Просто так, 1С, видите ли...
(93)
и меня выгонят как неудачный пример программиста

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

Думаю, Вы льстите себе, а мне - приписываете лишком много.
Именно, что проблемы и ПРОБЛЕМЫ в 1С лично мне встречаются на каждом шагу, практически всегда не давая сделать нормально, корректно и правильно, а только через одно место.
А вот Вы как раз хвалите и оправдываете 1С при любом удобном случае.
Наверное, Вам не с чем сравнивать?
97. CaSH_2004 355 18.10.13 15:35 Сейчас в теме
(95)
Именно, что проблемы и ПРОБЛЕМЫ в 1С лично мне встречаются на каждом шагу, практически всегда не давая сделать нормально, корректно и правильно, а только через одно место.
А вот Вы как раз хвалите и оправдываете 1С при любом удобном случае.

Как это мне знакомо: я как раз рассуждал так же года 4 назад. Однако сейчас все труднсти позади - все глюки изучены и уже не мешают на каждом шагу как раньше, может помогло следующее:
- опыт позволяет предвидеть кучу всяких проблем и предотвращать их
- стараюсь не ставить ничего лишнего и нового - это всегда новый гиморой который ни мне ни клиенту не нужен
- если делаю разработку - стараюсь делать универсально и продаю всем или переделываю с незначительными модификациями, очень экономит время
- никуда не езжу, не трачу время на пробки, все по телефону и удаленно - ну 90%
- работаю часто через агентов - они получают свое, я свое, за это они часто утрясают корнфликты с клиентами

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

Интересно это только я вижу тут противоречие?
Думаю, Вы льстите себе

А вот Вы как раз хвалите и оправдываете 1С при любом удобном случае.


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

Наверное, Вам не с чем сравнивать?

Ну не знаю, у меня в клиентах были и "КраснодарКрайГаз" (дочка Газпрома), в постоянном обслуживании самые мелкиеи и достаточно крупные игроки в торговле различной направленности. Качеством все довольны, недовольство вызывает только оперативность (сильно загружен т.к. берусь почти за все). Клиентов активных порядка 30 со 100 базами (таких что каждый месяц по несколько раз), неактивных еще в 2 раза больше.
Глюков всяких перевидал, хотя думаю их еще больше, но желания увидеть их все что-то нет. Помошников почти нет, все в основном сам делаю.
Как думаете есть мне с чем сравнивать? Или опыт маловат и кругозор узенький?
101. AlexO 127 18.10.13 15:59 Сейчас в теме
(97)
У вас прямо какой-то заповедник 1С там :))
- опыт позволяет предвидеть кучу всяких проблем и предотвращать их

Вы - первый и единственный, кому опыт позволяет ПРЕДВИДЕТЬ проблемы клиента, даже не видя ни самого клиента, ни его базы.
- стараюсь не ставить ничего лишнего и нового - это всегда новый гиморой который ни мне ни клиенту не нужен

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

У вас, видимо, великолпный тайм-менеджемент - еще никому не удавалось делать быстро, качественно и универсально ВСЕ и ВСЯ в 1С.
- никуда не езжу, не трачу время на пробки, все по телефону и удаленно - ну 90%

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

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

Ну, я уже не удивляюсь - что клиенты позволяют вносить в свои базы фрилансеру (!) такие серьезные изменения, им, наверняка, совсем непонятные.
Уникальные экосистемы: в Москве не знают, сколько платить, поэтому платят, сколько унесешь; у вас - программистов 1С носят на руках и считают не меньше родственников раджи. И где-то близко к исполнительной госструктуре.
104. CaSH_2004 355 18.10.13 16:06 Сейчас в теме
(101)Ну ладно тебе завидовать, плохо спать будеш и пищеварение может нарушится. Каждому свое. Не умееш это попробуй на базаре торговать семячками, или в лотерею сыграй - вдруг повезет :) Мне вот никогда не везло на азартные игры. Может тебе не везет на 1С?
106. AlexO 127 19.10.13 20:25 Сейчас в теме
(104)
Мне вот никогда не везло на азартные игры.

Ну тогда вам и в 1С не повезет. Ведь что казино, что 1С - везде русская рулетка и вера в чудо "но мне-то повезет сорвать куш!".
Хотя если 1С - это даже не однорукий, а безрукий бандит, то и ставки намного выше, чем в казино ))
107. CaSH_2004 355 21.10.13 00:19 Сейчас в теме
(106)Я так понял это треп не о чем, просто скучаете?
Ну тогда вам и в 1С не повезет.

Опять собственные домыслы выставляем за факты? Продолжайте в том же духе, а мне как-то надоело общатся когда вместо внятного диалога вы ведете какой-то монолог высказывая домыслы и доказывая зачем то их мне когда они априори не соответствуют действительности.
94. CaSH_2004 355 17.10.13 14:47 Сейчас в теме
(88)Зачем вы связались с 1С? Чтобы мучатся? Вы мазохист? Если нет взгляните на вещи проще и не хайте тот продукт на котором работаете. У него куча недостатков, но вся жизнь их полна. Я на них ругаюсь только когда они встречаются, а вы при любом удобном случае.
Или не работайте с 1С, а выбирите свой идеал чтобы получать удовольствие от работы.
96. AlexO 127 18.10.13 15:22 Сейчас в теме
(94)
а выбирите свой идеал чтобы получать удовольствие от работы

Вы, москвичи, как из одного инкубатора - мысли одни на всех, оторванность от жизни, и побег от реальности ))
Ну, или украинцы - все далеки от русского народа.
98. CaSH_2004 355 18.10.13 15:38 Сейчас в теме
(96)
Вы, москвичи, как из одного инкубатора - мысли одни на всех, оторванность от жизни, и побег от реальности ))

Уважаемый, вы где тут москвичей нашли? Или москвичи перед вами так провинились что вы всех неугодных так именуете? Это какой то новый вид расизма - городизм что-ли :)
Я из Краснодара, может слыхали? город такой в одноименном крае, с Сочи под боком
99. AlexO 127 18.10.13 15:45 Сейчас в теме
(98)
Я из Краснодара

ну так вам москвичи как родные ))
Даже Сочи для вас покрасили ))
100. CaSH_2004 355 18.10.13 15:50 Сейчас в теме
(99)И чем же это? Ты готов за весь город отвечать? Ты не сторонник случайно Жириновского? А то стиль больно смахивает: обсираеш все вокруг, цепляешся ко всему что видиш, выдвигаеш "доказательства" которые нормальный человек вообще не понимает, переворачиваеш все слова опонента на свой лад, а не так как было сказано.
Ладно тот хоть политик, а ты кто?
102. AlexO 127 18.10.13 16:01 Сейчас в теме
(100)
которые нормальный человек

Так вот вы куда себя приписали ))
Ты готов за весь город отвечать?

Ну, удачно не провалиться куда-нибудь на олимпиаде ))
103. CaSH_2004 355 18.10.13 16:01 Сейчас в теме
+(100) А совсем забыл в тот же список:
- соскакивание с темы которую не можеш внятно закрыть и вместо нее поднимание новой темы, желательно такой чтобы перекрыть предыдущую
- игнорирование неудобных вопросов и собственных промашек
Собственно диалог тихо скатывается к типа "сам дурак". Давай завершим его. Не нравится и нет желания конструктивно говорить - поставь минус и не заходи больше сюда.
105. AlexO 127 19.10.13 20:22 Сейчас в теме
(103)
соскакивание с темы которую не можеш внятно закрыть

да, особенно невнятно получается на фоне оппонента, который от аргументов быстро перешел к "тыканью". Наверняка, такая практика складывалась годами от ответов на удобные вопросы и неимения собственных промашек.
70. CaSH_2004 355 08.09.11 09:19 Сейчас в теме
Кстати с данной ошибкой я впервые познакомился недавно в продукте "АСДОБ v.1.0.26" от фирмы ООО "Аудит - новые технологии" в одной газовой компании. Пока еще не копался глубоко, но если она не в закрытом модуле то попробую исправить и вышлю разработчикам информацию об этом.
72. demanru 28 15.09.11 13:48 Сейчас в теме
Abadonna чётко ответил, ему + :) Есть "косяк" похуже - для заполненного табличного поля всегда вызываются события ...ПриПолученииДанных(), ...ПриВыводеСтроки() тогда как этого и не требуется,
например, при изменении флажков, переключателей и полей ввода на форме (не элементы управления табличного поля!).
Вы можете в этом убедиться, поставив точку останова в приложенной обработке до изменения состояния флажка в процедуре:
Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

1С мне ответить не пожелала, может кто-то объяснить как обойти сие?
73. demanru 28 15.09.11 13:50 Сейчас в теме
demanru пишет:

Abadonna чётко ответил, ему + :) Есть "косяк" похуже - для заполненного табличного поля всегда вызываются события ...ПриПолученииДанных(), ...ПриВыводеСтроки() тогда как этого и не требуется,

например, при изменении флажков, переключателей и полей ввода на форме (не элементы управления табличного поля!).

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

Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)



1С мне ответить не пожелала, может кто-то объяснить как обойти сие?
Показать
Прикрепленные файлы:
ВнешняяОбработка1_1.epf
75. Abadonna 3835 24.09.11 11:26 Сейчас в теме
(74) Сам-то понял, что сказал?
76. Гость 22.12.11 14:51
Возможно циклическая ссылка - это моя ошибка. Мне обязательно в обработке нужно помнить несколько форм, регулярно проверять на то открыты они или нет, вызывать процедуры. Глюк с зависанием обработки в памяти наблюдался давно, но на днях обнаружился глюк покруче вызванный зависанием в памяти: обработка оповещения срабатывает столько раз, сколько форм было создано в сеансе 1СПредприятия.
При этом в синтаксис-помощнике сказано, что обработка оповещения срабатывает только для закрытых форм. Не тут то было! Проверка самым простым способом - ЭтаФорма.Открыта(); - показывает что процедура выполняется даже если форма закрыта.
Спасибо автору - решила заодно и проблему с оповещением и облегчила себе жизнь - каждый раз перезапускать предприятие чтобы протестить измененную обработку достало однако))
77. integragirl 22.02.12 08:09 Сейчас в теме
Столько обсуждений! а КАК бороться то с этим??
Не могу работать, внешняя обработка не обновляется и все, хоть убей.

А вообще, у нас этот глюк легко парируется загрузкой обработки/отчёта в справочник "Внешние..", благо он сейчас почти везде в той или иной форме бывает, и запуском оттуда. Глюк исчезает напрочь. Ну и версификация, написанная прямо в заголовке формы, чтоб проверить, с кем имеешь дело в данном запуске - наше всё при отладке.

Ничего подобного, ничего парируется.

Циклические ссылки

господи, куда? если это открытие обычной внешней обработки, просто из файл-открыть.

Помогите, кто решил этот бредовый трабл?
Оставьте свое сообщение

См. также

Полезные процедуры и функции для программиста 145

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

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

07.10.2019    9612    HostHost    23       

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

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

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

05.09.2019    13821    ids79    44       

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

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

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

03.09.2019    9541    YPermitin    68       

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

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

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

17.08.2019    11108    ids79    16       

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

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

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

08.08.2019    15208    ids79    30       

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

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

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

02.08.2019    11746    avalakh    21       

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

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

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

26.07.2019    13747    ids79    6       

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

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

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

17.07.2019    11970    ids79    27       

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

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

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

09.07.2019    9384    YPermitin    12       

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

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

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

04.07.2019    8359    SeiOkami    49       

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

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

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

25.06.2019    21818    ids79    17       

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

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

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

11.06.2019    12978    dmurk    134       

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

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

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

16.05.2019    19660    YPermitin    27       

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

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

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

11.05.2019    11710    Eret1k    23       

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

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

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

25.04.2019    6479    m-rv    2       

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

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

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

16.04.2019    9122    m-rv    16       

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

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

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

07.04.2019    18124    ellavs    125       

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

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

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

28.03.2019    14289    ellavs    83       

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

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

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

14.03.2019    14772    YPermitin    52       

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

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

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

03.02.2019    17874    ids79    9       

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

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

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

26.12.2018    14166    ids79    27       

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

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

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

14.12.2018    23634    ids79    72       

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

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

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

16.11.2018    20788    ids79    20       

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

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

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

13.11.2018    22757    Unk92    19       

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

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

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

10.11.2018    22616    ids79    40       

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

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

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

15.10.2018    21762    tormozit    100       

Произвольный код в фоновом режиме 166

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

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

03.09.2018    16067    nikita0832    42       

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 147

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

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

23.08.2018    23346    Rain88    42       

Повышаем эффективность разработки правил обмена 125

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

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

25.06.2018    20546    olegtymko    47       

Введение в механизм представлений в ЗУП ред. 3 157

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

В нашей организации на первом же телефонном собеседовании на должность разработчика по ЗУП ред. 3 вас обязательно спросят о том, что такое "Представления".

04.06.2018    25954    xrrg    82       

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

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

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

01.06.2018    22471    m-rv    21       

Строим графы средствами 1С (без GraphViz) 43

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

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    18241    slozhenikin_com    19       

Распределение расходов пропорционально продажам 9

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Бесплатно (free) Практика программирования

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    12277    Rustig    9       

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

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

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

24.04.2018    27063    avfed@rambler.ru    19       

Минимализмы 3 356

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

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    37533    ildarovich    44       

Этюды по программированию. Взаимодействие с Microsoft Word 109

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

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

11.12.2017    26811    milkers    23       

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

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

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

05.12.2017    22193    itriot11    34       

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена) 738

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

Что такое КД3? Как начать использовать? Полезные дополнения к документации. Что нужно исправить в типовых обработках и конфигурации. Как изменить правила обмена не снимая конфигурацию с поддержки. Как отлаживать правила обмена?

19.11.2017    143906    MaxS    251       

Заполнение данных по ИНН контрагента с помощью альтернативного сервиса огрн.онлайн 131

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

Код для заполнения данных по ИНН контрагента из ЕГРЮЛ с сайта огрн.онлайн.

01.11.2017    24062    slava_1c    49       

Программные перечисления, ч.2: приемы кэширования при разработке 67

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

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

30.10.2017    22378    unichkin    18       

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

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

Краткая шпаргалка по программной работе с настройками СКД

29.10.2017    25484    json    9       

Работа с Excel 299

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

Собрал различные полезности для работы с Excel из 1С. Иногда приходится форматировать документ Excel программно из 1С. Так вот, чтобы не искать постоянно на просторах интернета как сделать левое выравнивание в ячейке Excel из 1С и т.п. решил опубликовать это...

23.10.2017    27694    arakelyan    39