-Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в fixin

 -Сообщества

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 12.12.2002
Записей: 4343
Комментариев: 24598
Написано: 35607





Мучал отборы в 1С 80

Четверг, 04 Августа 2005 г. 17:28 + в цитатник

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

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

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

Функция ОтборВосстановить(Отбор, Рез) Экспорт
Для Каждого Стр Из Рез Цикл
Эл=Отбор[Стр.Имя];
Эл.ВидСравнения=Стр.ВидСравнения;
Эл.Значение=Стр.Значение;
Эл.ЗначениеПо=Стр.ЗначениеПо;
Эл.ЗначениеС=Стр.ЗначениеС;
Эл.Использование=Стр.Использование;
Эл.Представление=Стр.Представление;
КонецЦикла
КонецФункции
Рубрики: 

Открыл в лайвинтернете расширенный редактор!

Четверг, 04 Августа 2005 г. 12:39 + в цитатник

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


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


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













Спасибо


за


все


вот


эти


чудеса!!!


Ваш FIXIN


Рубрики:  Жизнь

Извращения 1С: хукер-мастер-класс

Вторник, 02 Августа 2005 г. 14:19 + в цитатник
Суть проблемы - если документ только по упр учету, у него должен быть другой номер.
Введение для упр учета отдельной фирмы не годится, т.к. договоры привязаны к фирме и придется дублировать договора.
Окей, применяем умелые ручки.

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

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

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

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

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

Рубрики: 

Чукченею...

Вторник, 02 Августа 2005 г. 12:49 + в цитатник
Вот уже, аки чукча, пишу на работе "С этой целью используется бизнес-процессА "Обход""
Рубрики:  Юмор

Мой сайт опять жив!

Вторник, 02 Августа 2005 г. 09:43 + в цитатник

Я таки доделал свой сайт на http://fixin.com.ru
Переписал его на джава-скрипт и разместил на народе.
Теперь почти все статьи опять на своем месте.
Остались мелкие глюки, да движок не до конца доработан, но легко это поправимо. :) Велком.
Рубрики:  Сайт

Замечательные функции 1С 80.

Пятница, 29 Июля 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-АК только в том случае, если эти реквизиты не заполнены.

Рубрики: 

Чего мне не хватает в ТВ-лентяйке.

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

Автодозвон телефона.

Четверг, 28 Июля 2005 г. 19:23 + в цитатник
Однажды я посещал сауну, в которой был телефон для обслуживания и, аки Архимеду, мне в голову пришла мысль.
На стене висела надпись - для обслуживания звонить 201.

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

Очень знаете ли удобно, когда телефонный номер всего один.
Может это конечно и реализовано, но почему не дошло в массы?
Рубрики:  Идеи

Бизнес-процессы для чайников

Четверг, 28 Июля 2005 г. 19:01 + в цитатник
Бизнес-процессы


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

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

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

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

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

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

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

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

С чего начать
На самом деле самая большая сложность – это придумать бизнес-процесс, на котором можно поизучать механику. Возьмите самый простой бизнес-процесс. Менеджер выписывает расходную накладную. Руководитель отдела должен ее утвердить. После утверждения расходная накладная проводится и Кладовщик производит отгрузку. Если накладная не утверждена, она помечается на удаление и бизнес-процесс завершается.

Алгоритм примерно такой:
0:Начало
А:Выполнение: Менеджер оформляет расходную накладную.
Б:Выполнение: Руководитель отдела утверждает накладную.
В:Условие: Если накладная утверждена, тогда Г иначе Д.
Г:Выполнение: Кладовщик выполняет отгрузку. Переход на Е.
Д:Конец: Завершение бизнес-процесса в статусе «Отмена».
Е:Конец: Нормальное завершение бизнес-процесса.

Флажок утверждена можно вносить или в расходную накладную или в сам бизнес-процесс, как реквизит.

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

Картинка:
На картинке приведен пример, похожий на задачу. Штрихами 1С показывает пройденные точки маршрута, красным пунктиром – текущую точку маршрута.
Бизнес-процессы.GIF (321x480, 12Kb)
Рубрики: 

Извращение в 80: виртуальный вид операции

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


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

ТмпМассив=Новый Массив();
ТмпМассив.Добавить(Новый Структура("Имя,Синомим","Возврат","возврат через реализацию"));
УстановитьПодменюВыбораВидаОперации(ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВидаОперации,
ТмпМассив,
Новый Действие("ДействияФормыДействиеУстановитьОперацию"));
реализация через возврат.GIF (487x225, 14Kb)
Рубрики: 

В 1С 80 есть групповой редактор ролей

Среда, 27 Июля 2005 г. 14:17 + в цитатник
Смотрите какой красивый, и даже RLS (Record Level Security) показывает.
групповой редактор ролей.GIF (699x441, 163Kb)
Рубрики: 

QIP вылетает по 3 раза на день.

Вторник, 26 Июля 2005 г. 15:25 + в цитатник
Запускаю на Win XP серваке. Периодически вылетает по целому каскаду ошибок. Картинку прилагаю.
ошибка QIP.gif (599x114, 3Kb)
Рубрики:  Жизнь

Способ обновления типовых конфигураций

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

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

Про мусор на дисках.

Понедельник, 25 Июля 2005 г. 19:02 + в цитатник
А вот в каком виде показывает это секвойя, как говорится, на вкус и цвет товарищей нет. SequoiaView.

http://win.tue.nl/sequoiaview
секвойя.jpg (511x346, 40Kb)
Рубрики:  Софт

Чем замусорены диски?

Понедельник, 25 Июля 2005 г. 18:54 + в цитатник
Раньше я пользовался программой SequoiaView чтобы смотреть какие файлы занимают какое место на диске, а вот коллега подсуетил еще одну интересную прогу. Я правда привык уже к секвойе, но прога тоже оригинальная.
Вот как она расписала мой диск цэ. К тому же можно параллельно сканировать все диски в системе.
Если щелкнуть на любой папке, она раскрывается и появляется точно такая же картинка по ней.
сканнер. www.steffengerlach.de.gif (443x390, 16Kb)

Прога называется "Сканнер HDD" и скачать ее можно с сайта http://www.steffengerlach.de/freeware/
Рубрики:  Софт

Дочитал Мура "Где моя страна, чувак".

Понедельник, 25 Июля 2005 г. 18:15 + в цитатник

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

Хак сайта Лукашенко.

Понедельник, 25 Июля 2005 г. 17:43 + в цитатник
Вот что бывает, когда экономят на веб-программистах!
Интересно, их уволили, или просто расстреляли???

http://president.gov.by/rus/search?what=%3Cdiv+sty...-top-r2.jpg%22%3E+%3C%2Fdiv%3E
белорусский президент.gif (696x116, 22Kb)
Рубрики:  Юмор

Юноши!

Понедельник, 25 Июля 2005 г. 16:50 + в цитатник
Для тех, кто не собирается в армию, наводка, где можно откосить!
Resize of Resize of 09150001.JPG (100x75, 6Kb)
Рубрики:  Юмор

На улицах москвы

Понедельник, 25 Июля 2005 г. 16:49 + в цитатник
Вот, видел.

Resize of 15 лет не срок.JPG (230x307, 17Kb)
Рубрики:  Юмор
Москва

Where Is It разочаровывает

Понедельник, 25 Июля 2005 г. 16:44 + в цитатник
В натуре, достал этот WhereIsIt.
Прикиньте, он для каждого файла позволяет создать алиас - т.е. имя под которым этот файл числится в каталоге.
НО выгрузкить во внешний файл (XML, CVS) можно только или алиас, или имя файла, но никак их вместе. Звиздец.
Сегодня скачал 5(!) каталогизаторов, буду их дома изучать.
Рубрики:  Софт


Поиск сообщений в fixin
Страницы: 217 ... 39 38 [37] 36 35 ..
.. 1 Календарь