Космические технологии O-Planet: 1С и навигация в асинхронном пространстве

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

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

3
Сегодня мы направим наш челнок в мир асинхронной интерактивности, туда, где ...
Итак, если вы сегодня решили скоротать вечер на борту нашего челнока, то приготовьтесь к незабываемым впечатлениям. Сразу скажу, что комфортабельные лайнеры с многотомными тех.инструкциями – это не по мне. Все там продумано кем-то за тебя, а потому нет уверенности, что ты чем-то управляешь. Наш кораблик стартует только после удара кулаком по крышке гипердрайва, при старте от него обязательно отваливается очередная «лишняя деталь», но в замен ты получаешь полноту ощущения полета, и конечно в финале оказываешься самым быстрым во Вселенной.

В общем, у вас еще есть время соскочить. Тем же, кто «на корабле» не говорю «пристегнитесь» - не поможет…


Когда только начинаешь осваивать web-программирование, то серьезные неудобства нам, привыкшим к Word, может доставить невозможность явно задать точные координаты объектов на web-странице средствами html. Позднее, когда пытаешь реализовать на своей страничке некую интерактивность, сталкиваешься с неприятной особенностью web: при обновлении твой клиент теряет все промежуточные данные. Поэтому, организовать игру крестики-нолики, чат или корзину покупок на сайте, не прибегая к кукисам или сессиям – задача не такая и простая. Большинство же чатов, форумов, тех же корзин покупок в Интернет-магазинах чаще всего сделано достаточно топорно: ваше состояние идентифицируется записью в базе данных на сервере по некоему идентификатору. Когда вы делаете очередной запрос к серверу, то передаете ему этот идентификатор и суть запроса. Сервер находит Вашу запись, смотрит, что можно сделать и генерирует в ответ страничку, вновь возвращая идентификатор и «забывая» о вашем существовании в тот же миг. Это вполне стандартная процедура web-серфинга. Ее отличают две особенности:

1. Между моментами отправки запроса и получением ответа от сервера ваш браузер «висит»
2. При получении ответа страница полностью перерисовывается, теряя всю прежнюю информацию, например, информацию о выбранном товаре


Но сегодня мы направим наш челнок в мир асинхронной интерактивности, туда, где и первая, и вторая проблемы web решены. Более того, мы откажемся от «многотомных инструкций», связанных с PHP и MySql, заменив их привычной и всеми любимой оболочкой 1С. В завершении полета нам предстоит наблюдать рождение сверхновой, имя которой ярко и незабываемо: Асинхронный 1С-сервер: «АС-1С»

Асинхронная вселенная.

Итак, у нас есть подвисающая и перерисовывающаяся web-страничка. Давайте разделим ее на два фрейма. В первом будем делать обычные http-запросы к серверу. Разумеется, этот фрейм подвиснет, дожидаясь ответа и полностью обновится при его получении. Сделаем его невидимым. И пока наш невидимый друг «разговаривает» с сервером, мы будем продолжать работать во втором, рабочем фрейме, периодически опрашивая по таймеру состояние первого. Как только сервер подаст «условный знак», что страница в первом фрейме полностью сформировалась (например, сформирует < div id=”END”>END</div> в конце), мы без труда достанем оттуда все, что нам нужно по frame1.name.outerHTML, и лишь частично обновим содержание рабочего фрейма, не перерисовывая всей страницы в нем, а потому не теряя ни единого бита пользовательских данных.

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

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

ФОФЧ тьфу… AJAX

Приходя к радостному пониманию преимущества асинхронных запросов, незадачливый web-навигатор устремляется в поиски приемлемой технологии, реализующей такие запросы, и наталкивается на скалу под названием AJAX. С легкой руки Гарретта (не он ли был прообразом персонажа в Thief? &#61516; ) асинхронность почти повсеместно ассоциируется с php, mysql, xml javascript и страшным XMLHttpRequest … В общем, многие «ниасиливают» и отказываются от идеи асинхронности. Мы же с вами потому и в космосе, что там, где что-то «ниасиливаем», начинаем творить сами.

Асинхронный клиент

Те, кто въехал в специфику асинхронного подхода без труда напишут клиент, делающий асинхронные запросы, на любом доступном языке программирования. 1С не будет здесь исключением. Асинхронный клиент, написанный на 1С, это достаточно интересная тема. Во-первых, любое количество подключений к базе на сервере, даже если там стоит однопользовательская версия 1С. Во-вторых, никакого зависания, если сервер не отвечает. В-третьих, возможность работать из любой части галактики, где есть доступ к Интернет. Зачем и кому, спросит кто-то, могут понадобиться «асинхронные одинэсины»? Думаю, применение этой технологии может быть самым широким и неожиданным: удаленные офисы, торговые представители с ноутбуками, корпоративные справочные системы… Я использую асинхронный обмен данными при сетевом варианте работы сервера дисконтных карт в составе «Кассирочки». Кстати, всем известный «Штрих-кассир» использует именно такую технологию, передавая данные о продажах и делая запрос об остатках товаров в реальном времени в «Штрих-мастер» на сервере.

Для создания асинхронного клиента на базе 1С, воспользуемся функцией «ОбработкаОжидания». Глобальный модуль простейшего асинхронного клиента, позволяющего делать до 10-и запросов к серверу и ожидать ответа, не прекращая работу, будет выглядеть примерно так:

Перем ЕстьВопрос Экспорт;
Перем ЕстьОтвет Экспорт;
Перем ТекстВопроса Экспорт;
Перем ТекстОтвета Экспорт;
Перем ПапкаОбмена Экспорт;

Функция ЗаписатьВопрос(Инфо) Экспорт
  Если ЕстьВопрос=1 Тогда 
    Возврат 0; // не обработан предыдущий вопрос
  КонецЕсли;
  ТекстВопроса=Инфо;
  ЕстьВопрос=1;
  Возврат 1; // текущий вопрос записан в переменную ТекстВопроса 
      // и ожидает отправки на сервер
КонецФункции

Функция БылДанОтвет() Экспорт
  Возврат ЕстьОтвет; // Имеется необработанный ответ в переменной ТекстОтвета
КонецФункции

Функция ПолучитьОтвет() Экспорт
  Если ЕстьОтвет=1 Тогда
    ЕстьОтвет=0; // Текущий ответ был прочитан, можно получать новый ответ
    Возврат ТекстОтвета;
  КонецЕсли;
  Возврат "";
КонецФункции

Процедура РаботаССервером()
  Если ЕстьОтвет=0 Тогда // Если нет необработанного ответа
    Если ФС.СуществуетФайл(ПапкаОбмена+"ответ.txt")=1 Тогда
      Т=СоздатьОбъект("Текст");
      Т.Открыть(ПапкаОбмена+"ответ.txt");
      ТекстОтвета=Т.ПрочитатьСтроку(1);
      ФС.УдалитьФайл(ПапкаОбмена+"ответ.txt"); // Сообщаем серверу, что ответ прочитан
      ЕстьОтвет=1; // Прочитан новый ответ
    КонецЕсли;
  КонецЕсли;
  Если ЕстьВопрос=1 Тогда // Если есть необработанный вопрос
    К=1;
    // Проверяем, есть ли возможность записать вопрос
    Пока ФС.СуществуетФайл(ПапкаОбмена+"вопрос"+К+".txt")=1 Цикл
      К=К+1;
      Если К>10 Тогда
        Возврат; // Имеется 10 непрочитанных сервером вопросов
      КонецЕсли;
    КонецЦикла;
    Т=СоздатьОбъект("Текст");
    Т.ДобавитьСтроку(ТекстВопроса);
    Т.Записать(ПапкаОбмена+"вопрос"+К+".txt");
    ЕстьВопрос=0; // Текущий вопрос обработан и направлен серверу
  КонецЕсли;
КонецПроцедуры

ЕстьВопрос=0;
ЕстьОтвет=0;
ОбработкаОжидания("РаботаССервером ",1); 


Для создания более крутого Интернет аналога, нам потребуется внешняя компонента, реализующая доступ к Интернет, и обрабатывающая наши запросы в фоновом режиме. Как только сервер присылает ответ, наша компонента должна формировать событие в процедуре ОбработкаВнешнегоСобытия.

Но можно быть проще, воспользовавшись внешним приложением, например, подключиться к браузеру по OLE и периодически опрашивать его объектную модель на наличие пресловутого < div id=”END”>END</div> . Еще проще? Пожалуйста. Запускаем параллельно еще одну 1С, и пусть она занимается Интернет с помощью стандартных библиотек, формируя текстовые файлы с полученной информацией в определенном каталоге. Мы же продолжаем работать в нашей базе. И как только мы видим появление такого файла, значит, нам прислали долгожданный ответ. Разумеется, ни что не мешает использовать прямое ftp-подключение к серверу, чтобы периодически опрашивать, а не появился ли нужный нам файлик…

Асинхронный сервер

Ну почему??? Почему какой-то там Гарретт может позволить себе брякнуть с будуна AJAX, и вся планета будет это повторять? Нет, мы-то чем хуже! Сегодня мы говорим «АС-1С» И пусть эта аббревиатура станет крылатой!

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

Но, говоря о применении 1С в качестве серверной программы, мне хотелось бы акцентировать внимание на замене им mysql и xml. По сути, используя 1С, мы имеем мощнейший инструмент обработки данных. Намного более мощный, чем mysql. Ни что также не мешает нам заменить xml-шаблоны модулем генерации страничек в составе все того же нашего 1С. Соответственно, при таком подходе php-код обработки Интернет запросов уменьшится до минимума. Это разгрузит модуль обмена данными с клиентами, и увеличит пропускную способность нашего web-сервера в несколько раз.

Остается вопрос, как более мягко связать web-сервер c 1С? Конечно, можно использовать все те же текстовые файлы обмена. Но в Интернет-варианте это будет выглядеть как-то уж очень топорно. Интересный вариант решения поставленной задачи предлагает сочетание технологии внешних компонент с расширением ISAPI web-сервера. Расширение ISAPI позволяет получать доступ внешнему приложению к серверному потоку данных. Кроме того, в отличие от CGI, ISAPI-библиотека находится в памяти постоянно, а не загружается и выгружается при каждом новом запросе. Это позволит организовать постоянный обмен данными ядра сервера с 1С на высокой скорости.

***

Надеюсь, наш круиз в асинхронные web-дали останется незабываемым, а вариации на тему 1С в рамках асинхронности подарят всем участникам круиза, наблюдавшим свет сверхновой АС-1С, интересные идеи. Только не забывайте чаще стучать по крышке гипердрайва…

3

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

Комментарии
Избранное Подписка Сортировка: Древо
1. CheBurator 22.12.07 06:08 Сейчас в теме
ну, нормалек...
весь вопрос в том, что 1С-ина - интерактивная система. а юзер ждать не станет.. пока там его задание на формирование отчета в очереди у сервака валяется.. сам сформирует быстрее... но для кучи всяких прочих вещей - нормуль...
2. alexqc 24.12.07 10:15 Сейчас в теме
> Интересный вариант решения поставленной задачи предлагает сочетание технологии внешних компонент с расширением ISAPI web-сервера. Расширение ISAPI позволяет получать доступ внешнему приложению к серверному потоку данных.

..... И мы получим 1С:веб-расширение :)
3. alexqc 24.12.07 11:45 Сейчас в теме
Кстати, внесу пару дополнений.

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

Во-вторых, можно запустить несколько серверов - для "параллельной" обработки кучи запросов. Но в этом случае
нужно следить, чтоб два сервера не обработали один файл. Это можно сделать либо заведением для каждого сервера своего каталога и переносом обрабатываемых файлов туда, либо созданием для обрабатываемого файла файла-флага (для "обычной" 1С подойдет xBase-объект, пока он открыт-соотв. дбф блокирован) - наличие флага будет свидетельствавать об "захвате" файла. А для 1С++ можно поступить еще проще - накладывать файловые блокировки (объект binaryData).
4. O-Planet 6974 24.12.07 16:59 Сейчас в теме
Угу. Спасибо. Есть еще _GetPerformanceCounter()
5. fAngel 371 26.04.08 11:14 Сейчас в теме
Оставьте свое сообщение

См. также

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки. 1

Статья Программист Нет файла v7.7 1С7:Комплекс 1С7:ТиС УУ Бесплатно (free) Практика программирования Адаптация типовых решений

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    571    ksnik    0       

Проверка часового пояса 9

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

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

16.05.2016    8194    kudenzov    3       

[ПОЛЕЗНЯШКА, 7.7] Как посчитать итоги по документам черным запросом с изподвывертом? 13

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования

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

12.03.2016    15490    CheBurator    18       

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция 111

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

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    48389    Serginio    33       

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. 37

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

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

09.03.2016    25412    Serginio    22       

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

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

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

27.01.2016    62840    Serginio    104       

Пример HTTP запроса к УТМ ЕГАИС на платформе 1С 7.7 15

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Оптовая торговля Розничная торговля Бесплатно (free) Практика программирования Внешние источники данных

Запрос реализован на объекте ServerXMLHTTP из встроенной в Windows библиотеки MSXML, результатом запроса является XML объект DOMDocument из той же библиотеки MSXML со встроенным интерфейсом его обработки

16.12.2015    20010    Palmer1976    3       

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм 20

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

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

23.11.2015    13962    etmarket    14       

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7 11

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования Универсальные функции

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

24.09.2015    13791    Anzhey    13       

Универсальный способ сравнения таблиц 15

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

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    14803    json    1       

Числа прописью в родительном падеже в 7.7? Легко! 13

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования

Вывод числительных прописью в родительном падеже штатными средствами в три строчки кода.

20.06.2015    10049    gimalaj    3       

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним 78

Статья Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    70927    shmellevich    35       

Исправление в типовой комплексной конфигурации глобальной функции глВсеРеквизитыДокументаЗаполнены() 4

Статья Программист Нет файла v7.7 1С7:Комплекс Россия Windows Бесплатно (free) Практика программирования

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

20.08.2014    6002    hvv2002    0       

ЗаполнитьЗначенияСвойств - заставляем работать в 7.7 11

Статья Программист Нет файла v7.7 1cv7.md Бесплатно (free) Практика программирования

Если вы используете в работе 1С:Предприятие 8.х, то наверняка знакомы и с замечательной системной процедурой, как ЗаполнитьЗначенияСвойств(). Ее использование помогает значительно упростить написание программного кода в ряде случае, делает его (код) более наглядным и простым. Но что же делать тем, кто до сих пор использует (постоянно или иногда) 1С:Предприятие 7.7?

24.07.2014    18751    tomvlad    5       

Полезные функции. Склонение (должность и фамилия подписантов). Любой язык 3

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

Уехал директор в командировку, отпуск... , оставил доверенность на хозяйственные операции на другого сотрудника. Все договора и другие документы в обмороке - "подписант" теперь другой, по тексту тоже много правок... Пересмотрел много публикаций, вариантов много, не приглянулось. Сделал свой "Баян" . У меня всего-то крутится пять фигурантов ... Нет простого, наглядного и всепогодного варианта без языкового барьера. Всем процессом управляет пользователь.

03.03.2014    15332    kompas-dm    5       

Реализация Ctrl+Z в 1С 7.7 (ТиС) 7

Статья Программист Нет файла v7.7 1С7:ТиС Windows Бесплатно (free) Практика программирования

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

15.07.2013    5551    a.o.popova    10       

Копия напечатанного документа или как спрятать документ. 2

Статья Программист Нет файла v7.7 Бесплатно (free) Журнал регистрации Практика программирования

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

11.04.2013    13113    Dima_    8       

Автосохранение документа в 1С 7.7 3

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Бесплатно (free) Практика программирования

В данной статье мы рассмотрим автосохранение документа в 1С 7.7!

22.03.2013    11068    aagubarev    25       

Конвертация данных 2.1 (2.1.3.1) 1С 7.7 - 1С 8.Х передача параметра ПКО 14

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

Передача параметров по умолчанию доступна только для баз 1С 8.х -1С 8.х. Показан пример, как передать параметры из 1С 7.7 - 1С 8.х

10.12.2012    22203    serg_gres    6       

Устранение проблемы при работе с полем, которое ограничено маской ввода 3

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

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

08.08.2012    14135    www2000    4       

Динамическая фильтрация в справочнике при вводе наименования 15

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

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

02.07.2012    14243    maxpiter    62       

Обновление базы 1с 7.7. с помощью движка 1с 8.х 92

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования Администрирование данных 1С

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

28.04.2012    15873    Valerich    31       

v77. Робот 43

Инструменты и обработки no Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

Исполнитель Робот. Учебное пособие по программированию для детей дошкольного возраста. Без внешних компонент.

09.04.2012    10208    54    item    18       

Запуск внешней обработки по расписанию v7.7 39

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Бесплатно (free) Практика программирования Администрирование данных 1С

Неоднократно возникали задачи организовать, например ежедневную выгрузку и отправку отчетов по эл.почте, и вот…

20.03.2012    39512    Yury1001    17       

v77. Закладки в многоуровневом справочнике аля Total Commander 28

Инструменты и обработки Программист Конфигурация (md, cf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

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

09.03.2012    8822    44    item    17       

v77. Паинт 53

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

v77. 1С:Паинт :) Такая вот игрушка. Без внешних компонент.

06.03.2012    11916    81    item    38       

Как уменьшить количество заблокированных объектов 26

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

История о том как я решил пересобрать форму справочника клиентов и чем это все закончилось...

12.01.2012    13205    ShEvOvIcH    18       

Регистрация текста окна сообщений 4

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

Для контроля работы пользователей потребовалось записывать текст окна сообщений в файл. Получился простейший механизм регистрации лог-файла. Удержать роста папки "Temp", в качестве рекомендации, может использование bat-файла, который будет чистить или архивировать получаемые логи. Таких батников в инете полным-полно. P.S. Особо по форуму не смотрел, может, есть уже такое.

28.11.2011    6395    sdin101    9       

7.7.: Готовим md-файл для публикации. В картинках. 46

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

Вы доработали типовую конфигурацию: скажем, добавили новый Документ, и хотите им поделиться с обществом ИС. Но нельзя же выложить МД-шник целиком, это будет нарушением правил. И как тут быть?

14.09.2011    15058    Арчибальд    21       

Учет доверенностей 6

Статья Программист Нет файла v7.7 1С7:Бух 1С7:Комплекс 1С7:ТиС 1С7:ПУБ Документооборот и делопроизводство Бесплатно (free) Практика программирования

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

08.09.2011    9572    Sykoku    8       

Методика расчета резервов отпусков (счет 96) в 1С Зарплата и Кадры 7.7 с 2011 года (вариант) 32

Статья Программист Нет файла v77::Расчет 1С7:Бух 1С7:ЗиК Россия БУ Зарплата Бесплатно (free) Практика программирования

В статье рассмотрен один из возможных вариантов расчета резервов отпусков (счет 96) в 1С Зарплата и Кадры 7.7 с 2011 года.

14.06.2011    19416    vkr    48       

Выбор Движений документа по конкретному регистру, с помощью прямого запроса 0

Инструменты и обработки Программист Конфигурация (md, cf) v7.7 openconf 1cv7.md Россия Бесплатно (free) Практика программирования

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

26.05.2011    10541    Vix    4       

Прямой запрос на выборку подчиненных документов 6

Инструменты и обработки Программист Конфигурация (md, cf) v7.7 openconf 1cv7.md Россия Бесплатно (free) Практика программирования

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

26.05.2011    16862    Vix    5       

Некоторые ошибки и «проблемные» особенности реализации встроенного языка платформы 1С:Предприятие 7.7 96

Статья Программист Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Практика программирования

Описание некоторых ошибок и особенностей реализации встроенного языка, которые создают «подводные камни» при программировании, а также возможных способов обхода этих проблем из собственного опыта работы на платформе 1С:Предприятие 7.7.

08.04.2011    42049    AleksR    102       

Монопольно ли запущена база 7.7 для SQL. Снятие single user в sql 9

Статья Системный администратор Программист Нет файла v7.7 openconf 1cv7.md Россия Бесплатно (free) Информационная безопасность Практика программирования

T-SQL скрипт, позволяющий определить монопольно ли запущена база на сервере SQL, а также перевести базу в multi user

11.03.2011    16435    d0dger    12       

Отпуск по уходу за ребенком. Расчет по-новому и по-старому 32

Статья Программист Нет файла v77::Расчет 1С7:ЗиК Россия Управление персоналом (HRM) Бесплатно (free) Практика программирования

По новому законодательству расчет среднего заработка для отпуска по уходу можно производить как по старым правилам, так и по новым, на усмотрение сотрудника. Реализуем это в ЗиК.

11.03.2011    10200    Nicholas    9       

Ошибки формата файла 2-НДФЛ в ЗиК релиз 306 100

Статья Программист Нет файла v77::Расчет 1С7:ЗиК Россия НУ Зарплата НДФЛ Бесплатно (free) Практика программирования

Ошибки 2НДФЛ в релизе: файл формируется как для ЮЛ, даже если работодатель ИП, опечатка "Отчетсвто", и указание имени файла с расширением. Нужно подправить отчет "СправкиПоНДФЛ".

02.02.2011    17131    1st    6       

ЗиК 305 ЗиК 306 Больничный лист. 107

Статья Программист Нет файла v77::Расчет 1С7:ЗиК Россия Зарплата Бесплатно (free) Практика программирования

Для переходящих больничных листов за счет работодателя оплачивается 2 дня, а не 3. Первоисточник: http://forums.kuban.ru/forum/viewtopi...669&page=2

25.01.2011    12224    Cvetic    26