• Авторизация


Хали-гали-паратрупер, я купил скутер! 05-08-2005 13:22


Купил давеча в Малаховке скутер HONDA LEAD 50.
Поршневая и ремень новые, покрышки на 4 балла.
Цена вопроса 650$
Вчера проехал на нём примерно 50 км.
Знал, что на скорости будет холодно, взял свитер, застегивающийся на горло, но все равно околел - на скутере надо ездить блин в куртке - на скорости 50 км/ч разве что из седла не выдувает!



Так что таперича я на колесах.
Могу покатать!

У чувака на покупаемом скутере надпись была "Самый крутой плейбой".
Гыгыгы... в точку.
комментарии: 0 понравилось! вверх^ к полной версии
Криворучка 1С 80: при записи и перед записью 05-08-2005 13:12


Блин, в событии "При записи" пытался установить поле объекта, а оно не сохранялось - еще бы, это событие возникает, когда объект уже записан, юзайте событие "Перед записью".
комментарии: 2 понравилось! вверх^ к полной версии

Узнал что в 1С 80 нельзя программировать интерфейсы 05-08-2005 11:47


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



Для тех кто не понял - поясняю - в 80 нет возможности программным путем добавлять новые пункты меню и удалять существующие в меню пользователя.
комментарии: 2 понравилось! вверх^ к полной версии
Мучал отборы в 1С 80 04-08-2005 17:28



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

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

КонецФункции

Функция ОтборВосстановить(Отбор, Рез) Экспорт
Для Каждого Стр Из Рез Цикл
Эл=Отбор[Стр.Имя];
Эл.ВидСравнения=Стр.ВидСравнения;
Эл.Значение=Стр.Значение;
Эл.ЗначениеПо=Стр.ЗначениеПо;
Эл.ЗначениеС=Стр.ЗначениеС;
Эл.Использование=Стр.Использование;
Эл.Представление=Стр.Представление;
КонецЦикла
КонецФункции
комментарии: 0 понравилось! вверх^ к полной версии
Открыл в лайвинтернете расширенный редактор! 04-08-2005 12:39


Большое спасибо, товарищ Админ, как вас там, не валец, случайно?


Только выбор цвета жутко тормозит.
Поэтому я набиваю текст в ворде, а потом копирую в эту панельку.


Получается просто супер!













Спасибо


за


все


вот


эти


чудеса!!!


Ваш FIXIN


комментарии: 0 понравилось! вверх^ к полной версии
Извращения 1С: хукер-мастер-класс 02-08-2005 14:19


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

Итак, практически у каждого документа вызывается функция общего модуля:
УстановитьЗаголовокФормыДокумента(Строка(ВидОперации), ЭтотОбъект, ЭтаФорма);

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

Теперь в процедуру УстановитьНомерДокумента(ДокументОбъект)
общего модуля вставляем затычку, которая назначает правильно номер для упр учета и ВОЙЛА!

Теперь в форме, когда пользователь сбрасывает флажок "ОтражатьВБухУчете", у него тут же меняется номер документа.

А ведь как было бы красиво, если бы существовали глобальные события "ПриОткрытииФормы"! Не пришлось бы выискивать процедуру, которая вызывается у каждой формы.

комментарии: 0 понравилось! вверх^ к полной версии
Чукченею... 02-08-2005 12:49


Вот уже, аки чукча, пишу на работе "С этой целью используется бизнес-процессА "Обход""
комментарии: 0 понравилось! вверх^ к полной версии
Мой сайт опять жив! 02-08-2005 09:43



Я таки доделал свой сайт на http://fixin.com.ru
Переписал его на джава-скрипт и разместил на народе.
Теперь почти все статьи опять на своем месте.
Остались мелкие глюки, да движок не до конца доработан, но легко это поправимо. :) Велком.
комментарии: 0 понравилось! вверх^ к полной версии
Замечательные функции 1С 80. 29-07-2005 17:30


Для тех, кто не любит писать запросы в 1С 80, предлагаю использовать (С)-Гений1С-функции для поиска и заполнения объектов:

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

ОбъектСоздатьПоРеквизитам(Тип, Вид, Стр, СтрЗаписи, Много);
Ищет один объект(ы) по реквизитам, указанным в структуре Стр и заполняет его реквизиты согласно структуре СтрЗаписи.
Удобна в тех случаях, когда если объект существует нам нужно изменить его, а если не существует - создать.

ОбъектЗаполнитьПоРеквизитам(Объект, СтрЗаписи);
Просто заполняет Объект согласно структуре СтрЗаписи.

Стр(_Стр, К1=Неопределено, Зн1=Неопределено ..., К10=Неопределено, Зн10=Неопределено);
Если параметр _Стр - структура значений, то делается ее копия и в нее добавляются значения Зн(I) с ключами К(I).
Если же первый параметр не структура, то просто создается и возвращается структура согласно переданным значениям и ключам.
Это как бы более компактный альтернативный конструктор конструктору 1С 80 Новый Структура.

Примеры:
Объект.НайтиПоРеквизитам("Справочники", "Номенклатура", Стр("Наименование", "Пиво"), истина); - ищет пиво
Объект.НайтиПоРеквизитам("Задачи", "ЗадачаГлавная", Стр("БизнесПроцесс", БиснесПроцесс), истина); - ищет все задачи по данному бизнес-процессу

Объект.СоздатьПоРеквизитам("Справочник", "Номенклатура", Стр("Наименование", "Пиво"), Стр("Код", 12, "Артикул", 177));
Присваивает пиву код 12 и артикул 177.

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

Объект.НайтиПоРеквизитам("Справочники", "Номенклатура", Стр("Код", Стр("<", 123)), истина); - возвращает все элементы, код которых меньше 123.

Объект.НайтиПоРеквизитам("Справочники", "Номенклатура", Стр("Код", Стр("Условие", "Элемент.Код<123 И Элемент.Код>10")), истина); - возвращает все элементы, удовлетворяющим условию, написанному на языке запросов.

Объект.ЗаполнитьПоРеквизитам(Товар, Стр("Артикул", Стр("ТолькоПустые", "123-АК"), Стр("Код", Стр("ТолькоПустые", "123"))); - устанавливает товару код 123 и артикул 123-АК только в том случае, если эти реквизиты не заполнены.

комментарии: 0 понравилось! вверх^ к полной версии
Чего мне не хватает в ТВ-лентяйке. 28-07-2005 19:28


Вот сколько смотрю телевизоры, обнаруживаю глобальный недостаток в их пультах.
Например я смотрю сразу новости на канале 1, порнуху на канале 22 и художественный фильм на канале 10.
Вдруг в фильме реклама. Я опа - переключаюсь на новости, там ничего интересного, я врубаю порнуху. Периодически переключаюсь на 10 и обратно на 22 или на 1.
Считаем количество кликов - нажать кнопку 1, для 22-го канал кнопки аж две надо нажать и для 10-го тоже две. А вверх-вниз не порулишь, целых 40 каналов! (на юге реально было).
Ну почему эти твердолобые инженеры не сделают кнопочку "Добавить в избранное" и "Перемещение по избранному". Если я нажимаю кнопку "Добавить в избранное", канал или добавляется или удаляется из избранного.
Если я нажимаю "Перемещение по избранному" нажатие кнопки вверх/вниз перемещает меня к предыдущей/следующей программе из списка избранного, а кнопка Меню каналов показывает не все каналы, а только избранные.
комментарии: 2 понравилось! вверх^ к полной версии
Автодозвон телефона. 28-07-2005 19:23


Однажды я посещал сауну, в которой был телефон для обслуживания и, аки Архимеду, мне в голову пришла мысль.
На стене висела надпись - для обслуживания звонить 201.

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

Очень знаете ли удобно, когда телефонный номер всего один.
Может это конечно и реализовано, но почему не дошло в массы?
комментарии: 0 понравилось! вверх^ к полной версии
Бизнес-процессы для чайников 28-07-2005 19:01


Бизнес-процессы


Когда я столкнулся с бизнес-процессами, они показались мне таким же темным лесом, как в своё время регистры расчета. Я пустыми глазами смотрел на демо-пример от 1С, читал статьи в Интернете и ничего не понимал.
Однако в бизнес-процессах нет ничего сложного. Это своё кристально чистое видение я попытаюсь передать и вам.

Уясните сразу, что бизнес-процессы – это всего лишь два новых объекта в 1С 80: бизнес-процессы и задачи. Причем задачи можно использовать самостоятельно и без знания бизнес-процессов. Их можно трактовать, как список задач для текущего пользователя.

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

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

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

Как соотносятся задачи и бизнес-процессы? Одному виду бизнес процесса соответсвует один вид задачи, один вид задач может использоваться в нескольких бизнес процессах. Это как бы странно, потому что на различных блоках исполнения мы можем ожидать разные задачи. Например задача согласования может отличаться от задачи вбивки первичных документов. Но в демо примере все сделано на одном виде задач, а в данном случае, если мы все же хотим использовать разные виды задач, можно использовать вложенные бизнес процессы.

Как видите, все очень просто. Если кто-то чего-то не понял, обращайтесь, допишу статью более понятно.

Несколько советов «чайникам».
• Посмотрите в режиме «Конфигуратор» демо-базу с ИТС - познавательно. В режиме «Предприятие» можете не смотреть, особо ничего не поймете.
• У бизнес-объекта нужно обязательно указать вид задачи – без него конфигурация не сохранится. Сначала может использовать один вид задачи для всех бизнес-процессов.
• Чтобы бизнес объект мог стартовать, у него должна быть на карте маршрута хотя бы одна точка входа.
• Каждый блок бизнес-процесса можно назначить исполнителя. Он выбирается из реквизитов адресации задачи, вид которой подвязан к бизнес процессу. Можно выбирать как исполнителя, пользователя, так и любой другой реквизит адресации, например назначить задачу подразделению.
• У задачи нужно не только заполнить реквизиты адресации, но и выбрать основной реквизит адресации, например «Пользователь», выбрать регистр сведений для адресации, переменную сеанса, которая будет соотноситься с основным реквизитом адресации и иметь с ним один тип (!) . Также не забудьте указать соотношения между реквизитами адресации задачи и измерениями регистра адресации, чтобы связь между задачей и регистром сведений заработала.
• Для контроля списка можете использовать консоль отчетов по таблице всех задач «Задачи» и виртуальной таблице задач текущего (или указанного) пользователя «ЗадачаЗадачиПоИсполнителю».
• Для отладки вы можете отключать признаки того, что бизнес-процесс стартовал или задача выполнена.
• В демо-конфигурации для вывода списка задач используется отдельная форма списка "По исполнителю", поэтому в ней показываются задачи только текущего исполнителя. Я сначала никак не мог понять, почему форма списка задач показывает все задачи, потом понял. Чтобы форма показывала задачи по исполнителю, у нее в свойствах надо поставить режим вывода задач "По исполнителю" и программно присвоить реквизиту формы Исполнитель значение текущего пользователя (см. демо-конфу).
• Режим адресации по регистру сведений работает так: если задаче назначена роль исполнителя, то и пользователю в регистре сведений должна быть назначена эта роль, а если задаче не назначена роль исполнителя, то тем не менее пользователь должен быть прописан в регистре с пустой ролью (т.е. задача все равно не назначается любому пользователю). Задача попадает в список пользователя, только если о нем есть запись в регистре адресации.

С чего начать
На
Читать далее...
комментарии: 0 понравилось! вверх^ к полной версии
Извращение в 80: виртуальный вид операции 27-07-2005 15:26


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


Новая кнопка вставляется, к примеру, кодом (имитируется объект метаданных):

ТмпМассив=Новый Массив();
ТмпМассив.Добавить(Новый Структура("Имя,Синомим","Возврат","возврат через реализацию"));
УстановитьПодменюВыбораВидаОперации(ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВидаОперации,
ТмпМассив,
Новый Действие("ДействияФормыДействиеУстановитьОперацию"));
[487x225]
комментарии: 0 понравилось! вверх^ к полной версии
В 1С 80 есть групповой редактор ролей 27-07-2005 14:17


Смотрите какой красивый, и даже RLS (Record Level Security) показывает.
[699x441]
комментарии: 0 понравилось! вверх^ к полной версии
QIP вылетает по 3 раза на день. 26-07-2005 15:25


Запускаю на Win XP серваке. Периодически вылетает по целому каскаду ошибок. Картинку прилагаю.
[599x114]
комментарии: 0 понравилось! вверх^ к полной версии
Способ обновления типовых конфигураций 26-07-2005 10:48


В 1С 80 есть недооцененная пока еще до конца возможность выгрузки/загрузки большей части конфигурации в файлы.
Это пункты меню:
* Конфигурация - Выгрузить файлы конфигурации
* Конфигурация - Загрузить файлы конфигурации
Выгружать можно текстовые модули, MXL-макеты и содержимое справки в формате HTML.
Таким образом можно предусмотреть такой способ обновления типовой конфигурации:
1. Типовая конфигурация выгружается в файлы.
2. Файлы обрабатываются обработками (достаточно простыми, потому что они работают с файлами txt, mxl, html). mxl файлы можно обрабатывать обработками 1С 80, сначала загрузив макет, потом его сохранив. Остальные файлы можно обрабатывать в любой программе.
3. Полученные файлы загружаются обратно в конфигурацию.
4. Производится обновление текущей конфигурации полученной.

К сожалению, из конфигурации пока (?) не выгружаются права доступа и формы.
Что касается форм, можно таким образом подходить к программированию изменений в типовые формы, чтобы нужные элементы типовых форм создавались программно. Тогда эти изменения можно сделать на уровне текстов модулей.
комментарии: 0 понравилось! вверх^ к полной версии
Про мусор на дисках. 25-07-2005 19:02


А вот в каком виде показывает это секвойя, как говорится, на вкус и цвет товарищей нет. SequoiaView.

http://win.tue.nl/sequoiaview
[511x346]
комментарии: 0 понравилось! вверх^ к полной версии
Чем замусорены диски? 25-07-2005 18:54


Раньше я пользовался программой SequoiaView чтобы смотреть какие файлы занимают какое место на диске, а вот коллега подсуетил еще одну интересную прогу. Я правда привык уже к секвойе, но прога тоже оригинальная.
Вот как она расписала мой диск цэ. К тому же можно параллельно сканировать все диски в системе.
Если щелкнуть на любой папке, она раскрывается и появляется точно такая же картинка по ней.
[443x390]

Прога называется "Сканнер HDD" и скачать ее можно с сайта http://www.steffengerlach.de/freeware/
комментарии: 1 понравилось! вверх^ к полной версии
Дочитал Мура "Где моя страна, чувак". 25-07-2005 18:15



Мур - коммунист, как мне кажется. Красной ниткой идет - "раскулачить корпорации". Может оно и так и проблемы америки в том, что капиталисты зажимают простых мериканосов, но сдается мне что их главная проблема - это то, что они стали обычными свиньями, т.е. потребителями, домашними животными. Все их мысли о том, чтобы поесть повкуснее да поспать помягче.
Человеку, которому интересна его душа, похер где жить - в Рашке, Пиндустане или в концлагере Дахау. :)
комментарии: 0 понравилось! вверх^ к полной версии
Хак сайта Лукашенко. 25-07-2005 17:43


Вот что бывает, когда экономят на веб-программистах!
Интересно, их уволили, или просто расстреляли???

http://president.gov.by/rus/search?what=%3Cdiv+sty...-top-r2.jpg%22%3E+%3C%2Fdiv%3E
[696x116]
комментарии: 4 понравилось! вверх^ к полной версии