-Музыка

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

 

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

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

 -Сообщества

 -Статистика

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

Выбрана рубрика .


Другие рубрики в этом дневнике: Юмор(48), Софт(42), Слова(11), скутер(95), Сайт(24), Религия(3), Развлечения(57), Програмист(15), Помогите(15), Политика(68), Органайзер(6), Опыт(59), Обмен CD(6), Мысли(53), Москва(108), мобила(17), Креатив(3), КПК(28), компьютерные игры(61), книги(1), кино(75), Карикатуры(1), Идеи(77), Закон(92), Жизнь(348), дети(12), Девушки(302), Гитара(4), XXX(51), Outlook(41)

Шашлыки

Дневник

Понедельник, 07 Августа 2006 г. 10:17 + в цитатник
Ну вот и побывал на шашлыках у 1снегов.
Добирался туда под дождем на скутере, обратно, слава богу дождя не было.
Однажды окатило такой невыебенной волной из лужи, но был в куртке и шлеме, даже не испачках рубашку. гыгыгы.
Ездить под дождем по МКАДу - тот еще экстрим.
Время на шашлыках провел весело.
Отчеты тут: http://www.kb.mista.ru/article.php?id=292
Рубрики: 
Жизнь

Встреча с 1Снегами.

Дневник

Вторник, 18 Июля 2006 г. 11:05 + в цитатник
Вчера участвовал в сборе инициативной группы по подготовке встречи 1Снегов в москве.
Сидели в технобаре на м.Павелецкая. Я выпил 0.5 сибирской короны под чесночные гренки - 150 рублей.
Надо чаще встречаться.
Я туда подрулил на скутере - изучаю понемногу наземную Москву.
Бар неплохой, по пятницам там бывает стриптиз.
Рубрики: 
Девушки

Парево с интерфейсами в 1С

Дневник

Среда, 14 Июня 2006 г. 17:34 + в цитатник
Запарился я с объединением интерфейсов в 1С 80.
Вот выкладываю конфу, где демонстрируется объединение интерфейсов, вернее что ничего объединить не получается. :(
http://fixin.mylivepage.ru/file/138/471/%D0%A2%D0%B5%D1%81%D1%82+%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%BE%D0%B2+1%D0%A180.zip
Рубрики: 

Одежда и обувь 1С 80

Дневник

Пятница, 09 Июня 2006 г. 10:57 + в цитатник
Когда я увидел такой рисунок, то подумал, что эта контора занимается продажей одежды и обуви в стиле 1С 80, а оказалось, что все банально - продает собственные программы под 1С 80. Жаль, одежда в стиле 1С - это круто. Желтые майки и красные ботинки, йоу!
 (97x239, 6Kb)
Рубрики: 
Юмор

Axapta

Дневник

Суббота, 06 Мая 2006 г. 13:59 + в цитатник
Из любопытства начал сравнивать Аксапту и 1С с точки зрения программиста:
http://www.kb.mista.ru/article.php?id=206

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

Поиск идентификатора отчета по его синониму

Дневник

Четверг, 30 Марта 2006 г. 11:25 + в цитатник
Сформировать описание метаданных по ветви "Отчеты".
Поиском найти синоним отчета и узнать его наименование.

Например я искал так отчет "КнигаУчетаДоходовИРасходов" с синонимом "Книга учета доходов и расходов" и "РегламентированныйОтчетНДС" с синонимом "Декларация по налогу на добавленную стоимость".
Рубрики: 

Дата обработки на диске и в конфигурации.

Дневник

Понедельник, 20 Марта 2006 г. 11:02 + в цитатник
Иногда обработки 1С 80 выносишь во внешние файлы для ускорения разработки.
При этом начинаешь путаться, какая версия наиболее актуальна - на диске или в конфигурации.
Если конфигурация находится в хранилище, то этот вопрос можно выяснить, посмотрев историю объекта и сравнив даты модификации.
Рубрики: 

Эволюция кода 1С

Дневник

Воскресенье, 26 Февраля 2006 г. 15:40 + в цитатник
В колонках играет - Чиж.Домой

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

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

В первых типовых конфигурациях 77 все было завязано на документ. Большинство кода находилось в документе. Конфигурации были простыми и такой подход был возможен.

При дальнейшем увеличении сложности повторяющиеся куски кода для различных документов выносились в одну функцию.
Однако у каждого документа были свои особенности и в таких функциях часто эти особенности определялись по виду документа - для приходной накладной один способ, для расходной - другой.
Помню, однажды мне нужно было добавить один документ, который делал бы такие же движения, как расходная накладаная, мне пришлось найти все места, где встречается проверка вида на расходную накладную и добавить туда:
Вид="РасходнаяНакладная" ИЛИ Вид="МояНакладная"

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

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

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

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

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

20 лет спустя.

Дневник

Вторник, 21 Февраля 2006 г. 13:14 + в цитатник
Когда 1С умрет, что 1С-ника ждет?
пишу на 1С 80 за еду.jpg (292x306, 14Kb)
Рубрики: 
Юмор

Раздел 1С кочует на mista.ru

Дневник

Четверг, 16 Февраля 2006 г. 14:10 + в цитатник
Раздел 1С в моем дневнике закрыт и перекочует на сайт mista.ru в "Книгу знаний" по адресу: http://kb.mista.ru/index.php
Там действительно есть стоящие вещи, буду выкладывать туда.
Разработки будут выкладываться в клубе профессионалов 1c.proclub.ru
Рубрики: 

Динамическое управление интерфейсом 1С 8.0

Дневник

Четверг, 16 Февраля 2006 г. 13:06 + в цитатник
Многих огорчает, что в 1С 80 нельзя динамически (программно, "на лету") добавлять/удалять новые пункты в меню.
А ведь как было бы замечательно не плодить кучу интерфейсов, а создать один интерфейс и программно прятать в нем пункты, недоступные пользователю!
Но не стоит отчаиваться.
В 1С возможно сложение интерфейсов. Функция ПереключитьИнтерфейс("Интерфейс1,Интерфейс2,...,ИнтерфейсN") включает сразу несколько интерфейсов.
То есть возможно сделать по одному интерфейсу на каждый нужный пункт меню и включать только те интерфейсы, какие пункты меню должны быть доступны пользователю.
Проверено - работает.
Рубрики: 

Две колонки в запросе по итогам.

Дневник

Среда, 15 Февраля 2006 г. 16:24 + в цитатник
Короче понадобилось сделать так, чтобы в запросе по остаткам была не одна колонка остатка "Долг клиента", а две колонки - "Наш долг" и "Долг клиента" в зависимости от знака остатка - для построителя отчетов. Запрос был с использованием конструкции "Итоги", поэтому как мы не парились, ничего не могли придумать.
В конечном итоге пришли к конструкции вида:
ИТОГИ
СУММА(КонечныйОстаток),
ВЫБОР
КОГДА СУММА(ТаблицаРегистра.СуммаРегКонечныйОстаток) < 0
ТОГДА СУММА(-ТаблицаРегистра.СуммаРегКонечныйОстаток)
КОНЕЦ КАК НашДолг,
ВЫБОР
КОГДА СУММА(ТаблицаРегистра.СуммаРегКонечныйОстаток) >= 0
ТОГДА СУММА(ТаблицаРегистра.СуммаРегКонечныйОстаток)
КОНЕЦ КАК ДолгКлиента,
И все заработало, как нужно.
1С-цы поймут, как это круто!
Рубрики: 

Опять "Гений 1С".

Дневник

Четверг, 09 Февраля 2006 г. 15:21 + в цитатник
На волшебном форуме www.mista.ru Вошебник мне восстановил ник "Гений 1С" вместо fixin. Ура, все получилось быстро и просто … как по волшебству. Форум то волшебный!
Рубрики: 

Интересующиеся XML

Дневник

Вторник, 07 Февраля 2006 г. 17:39 + в цитатник
Так уж получилось, что ко мне в аську прет много народа, которые интересуются XML-парсингом. Видимо клиент созрел.
Я был испорчен компонентой v7plus.dll для 77, у которой был свой XML-парсинг, но после некоторых ее глюков понял, что все это от лукавого и обратился к чистому XMLDOM.
На mista.ru есть также собственный движок по парсингу XML, возможно он работает и быстрее, но не уверен, что он поддерживает все кодировки да и зачем изобретать велосипед, лучше один раз изучить XML DOM и использовать его и в 1С, и в VBA и в Delphy и в PHP. :)

Вот пример, как можно разбирать XML код.
Пример написан на использовании стандартной компоненты Windows XMLDOM.
В 1С имеется собственный парсер (разборщик) XML (объект ЧтениеXML), но он слишком специфический и обеспечивает только последовательное чтение файла от начала к концу. Пользоваться им не очень удобно, но парсит файлы он очень быстро. Однако начинать рекомендуется все-таки с XMLDOM.
Обратите внимание, что в отладчике 80 можно посмотреть все свойства COM-объекта, так что если чего-то не знаете, смотрите в отладчике.
Тип 1 – обычный элемент, содержащий в себе другие узлы или текст, тип 3 – собственно говоря текст, содержащийся в элементе.

Код:

Функция ПечатьУзлов(xmlDoc, Узел, Уровень=0)
Состояние(Уровень);
ЧислоДетей=Узел.childNodes.length;
Для Инд=1 По ЧислоДетей Цикл
ОбработкаПрерыванияПользователя();
ТекУзел= Узел.childNodes.item(Инд-1);
Если ТекУзел.nodeType<>1 Тогда
Продолжить;
КонецЕсли;

Стр="";
Для Инд1=1 По Уровень Цикл
Стр=Стр+" ";
КонецЦикла;
СтрАтрибуты="";
Для Инд2=1 По Узел.attributes.length Цикл
Атрибут=Узел.attributes.item(Инд2-1);
СтрАтрибуты=СтрАтрибуты+?(СтрАтрибуты="","",";")+Атрибут.nodename+"="+Атрибут.value;
КонецЦикла;
Текст="";
Если ТекУзел.childNodes.length=1 and ТекУзел.childNodes.item(0).nodetype=3 Тогда
Текст=ТекУзел.childNodes.item(0).text;
КонецЕсли;
Стр=Стр+ТекУзел.tagName+?(СтрАтрибуты="","","("+СтрАтрибуты+")" ) + ":" +Текст;
Сообщить(Стр);
ПечатьУзлов(xmlDoc, ТекУзел, Уровень+1);
КонецЦикла;
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.
xmlDoc = Новый COMОбъект("Microsoft.XMLDOM");
xmlDoc.Load(ИмяФайла);
RootNode = xmlDoc.DocumentElement;

ПечатьУзлов(xmlDoc, RootNode, 0);


//MsgBox currNode.xml
xmlDoc=0;
КонецПроцедуры

Пример результата работы кода:

title:Very Useful Journal
contacts:
address:sdsds
tel:8-3232-121212
tel:8-3232-121212
email:j@j.ru
url:www.j.ru
issues-list:
issue:
title(index=2):XML today
date(index=2):12.09.98
about(index=2):XML
home-url(index=2):www.j.ru/issues/
articles(index=2):
article:
title(ID=3):Issue overview
url(ID=3):/article1
hotkeys(ID=3):
hotkey:language
hotkey:marckup
hotkey:hypertext
article-finished(ID=3):
article:
title:Latest reviews
url:/article2
author:
hotkeys:
hotkey:
article:
title(ID=4):
url(ID=4):
hotkeys(ID=4):
authors-list:
author:
firstname(ID=1):Ivan
lastname(ID=1):Petrov
email(ID=1):vanya@r.ru
author:
firstname(ID=3):Petr
lastname(ID=3):Ivanov
email(ID=3):petr@r.ru
author:
firstname(ID=4):Sidor
lastname(ID=4):Sidorov
email(ID=4):sidor@r.ru
Рубрики: 

Выезжающие настройки.

Дневник

Понедельник, 23 Января 2006 г. 15:10 + в цитатник
Предлагаю ноу-хау для экономного расположения настроек в форме отчета.
Первоначально настройки видимы. Когда пользователь запускает отчет и тот сформирован, настройки прячутся и их можно вызвать/спрятать с помощью кнопки "Настройки". Очень удобно и экономит место на экране.

Сделано с помощью свертки панели настроек вверх с помощью функции Свертка. Тренируйтесь и юзайте!
выезжающее меню.JPG (477x333, 34Kb)
Рубрики: 

О поисках работы по 1С.

Дневник

Вторник, 17 Января 2006 г. 20:52 + в цитатник
Вот молодой человек ищет себе работу по 1С, готов работать бесплатно, день и ночь:
http://www.forum.mista.ru/topic.php?&id=149571#F

Эх, молодость, зеленость.
Делюсь бесплатным опытом из жизни.
В моей жизни после окончания института я работал год программистом на VC++. Меня это задолбало и я на год вообще завязал с компьютерами - челночил.
Ну а потом я женился и нужно было искать работу.
Кроме компьютеров я ничего не знал, жена посоветовала - открывай телефонный справочник в разделе "Компьютерные фирмы" и спрашай "Вам программист не нужен".
Очень похоже на тупой пикап, где останавливаешь девок и спрашиваешь "Давайте познакомимся", но как и в тупом пикапе, этот метод тоже не плох.
Где-то на пятой конторе (мне повезло), меня взяли программистом на Visual Basic.
Я проработал там три месяца на 40$ в месяц (это был Калининград 1999), а потом меня взяли без всякого знания 1С в сеть супермаркетов. Я пообещал, что научусь у главного их программиста. И я научился за 2 недели основам.
Короче мой совет молодому чемодану - звони и спрошай "Программисты нужны". Под лежачий камень вода не течет.
Рубрики: 
Жизнь

Сплит в конфигураторе.

Дневник

Вторник, 17 Января 2006 г. 19:30 + в цитатник
Мне нужно было скопировать регистр сведений в справочник.
Ну я и копировал реквизиты по очереди через буфер обмена, пришлось постоянно бегать вверх-вниз по дереву конфигурации.
И вот тогда меня озарило - открыл конфигурацию базы данных (не текущую, а именно базы данных) и в ней уже из ее регистра сведений уже копировал реквизиты в справочник.
Два окошка были рядом - бегать никуда не нужно было.
Рубрики: 

Комментарий в журнале документов.

Дневник

Вторник, 17 Января 2006 г. 13:51 + в цитатник
В журнале документов для каждого документа в подвале в текстовом поле я вывожу некоторую сводную характеристику по документу - типа комментарий.
Характеристика назначается в некоторую переменную при событии ПриАктивизацииСтроки.
Так вот например, если пользователь перейдет на строку, откроет документ, сделает с документом что-нибудь, а потом закроет(или не закроет) документ и вернется в журнал, то события ПриАктивизацииСтроки не происходит и надпись остается старой.
Сначала я хотел так и оставить, но потом пришла идея - вставить назначение характеристики также и в процедуру ПриАктивизацииФормы. То бишь если пользователь перешел в журнал документов, ему будет всегда предоставлена свежая характеристика про текущий документ в журнале.
Рубрики: 

Как запускать ночные задания в 1С 8.0

Дневник

Вторник, 10 Января 2006 г. 15:12 + в цитатник
Заводим специального пользователя ROBOT с полными правами без каталога (чтобы можно было запускать несколько роботов сразу).
При запуске программа проверяет, что это имя ROBOT, далее анализируется переданный через командную строку параметр, содержащий имя файла, из этого файла считывается текст и передается напрямую в команду Выполнить.
Так что ROBOT может выполнять ВСЕ задачи на ночь и не нужно менять конфигурацию, чтобы дать ему другую задачу - все управляется из командной строки.
Рубрики: 

Финт ушами над выгрузкой МОД.

Дневник

Четверг, 22 Декабря 2005 г. 13:40 + в цитатник
Давеча пришлось поработать над выгрузкой MOD в режиме изменений.
Дело в том, что скотина выгружает только сами объекты, а значения реквизитов выгружает просто в виде IDD, а нам нужно чтобы при выгрузке изменений выгружались и эти реквизиты, как объекты. Например, если в документе указана фирма, то нужно чтобы выгружался не только документ и фирма в виде ее IDD, но чтобы еще и фирма попала в файл выгрузки, как элемент справочника.

Изощрялся я над кодом, изощрялся, никак не могу найти простого решения.

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


Если РежимВыгрузки=1 Тогда
Для Инд=1 По п_СписокСправочников.РазмерСписка() Цикл
Спр=п_СписокСправочников.ПолучитьЗначение(Инд);
Вид=Спр.Вид();
ИДД=Спр.IDD;
Если ЕстьСправочники=1 Тогда
Для А=1 По 100 Цикл
Рез=ПолучитьПравилаВыгрузки(СправочникиПравила,Вид,А);
Если Рез=1 Тогда
ВыгрузитьСправочник(Справочники,Вид,ИДД,ТекущаяДата(),ТекущаяДата());
ИначеЕсли Рез=-1 Тогда
Прервать;
КонецЕсли;//иначе если Рез=0 - продолжить
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;




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


 Страницы: 5 [4] 3 2 1