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

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

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

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

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

Смысл решения, практически тоже самое что предложено Ёпрст. На практике это использую почти год.

Фильтрация происходит по набранным символам разделенных пробелами. Сортировка происходит по первому набору символов (до пробела)
Требования: 1С++
Версия: SQL (с DBF сто лет не работал, наверное что-то нужно поменять :) )
Ограничения. Если установлен отбор из диалога 1С, фильтрация не работает (скорее всего я не разобрался как программно снимать отбор, надеюсь в комментах подскажут)

Код приведенный ниже, добавить в нужную форму.

У меня в ГМ при начале работы системы присвоена глРС = СоздатьОбъект("ODBCRecord");
и глСтрокаРазрешенныхСимволов = " .,-+*/\_0123456789абвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz";
Их необходимо создать и объявить для работы данного алгоритма. 

 

Перем СтрокаСимволов;

Перем ТекФлагИерархическогоСписка;
Перем СпЗн;
Перем ОтборУстановлен;

Процедура ПриУстановкеОтбора(ТипОтбора,ЗначениеОтбора)
   
ОтборУстановлен = ТипОтбора;
КонецПроцедуры

Функция
ПолучитьСписокЭлементов(ВидСправочника, СтрокаСимволов)
   
СтрДляПозиции = СтрокаСимволов;
   
Пробел = Найти(СтрДляПозиции," ");
    Если
Пробел>0 Тогда
       
СтрДляПозиции = Лев(СтрДляПозиции,Пробел-1);
    КонецЕсли;
   
ТекстЗапроса = "
    |SELECT ID [Ссылка $Справочник."
+ВидСправочника+"]
    |   , case when CHARINDEX ('"
+СтрДляПозиции+"', "+ВидСправочника+".DESCR)=0 then 999 else CHARINDEX ('"+СтрДляПозиции+"', "+ВидСправочника+".DESCR) end ПозицияВСтроке
    |FROM $Справочник."
+ВидСправочника+" AS "+ВидСправочника+" With (NOLOCK)
    |WHERE ("
+ВидСправочника+".ISFOLDER >= 0)
    |"
;
    Если
ПустаяСтрока(СтрокаСимволов)=0 Тогда
       
СтрДляЗапроса = "
        |AND ("
+ВидСправочника+".DESCR LIKE '%"+СтрЗаменить(СтрокаСимволов," ","%') AND ("+ВидСправочника+".DESCR LIKE '%");
       
СтрДляЗапроса = СтрДляЗапроса + "%')
        |"
;
       
ТекстЗапроса=ТекстЗапроса+СтрДляЗапроса;
    КонецЕсли;
   
ТекстЗапроса = ТекстЗапроса + "
    |ORDER BY ПозицияВСтроке, "
+ВидСправочника+".DESCR
    |"
;
   
глРС.ВыполнитьИнструкцию(ТекстЗапроса, СпЗн);
    Возврат
СпЗн;
КонецФункции

Процедура
ПриНажатииКнопкиКлавиатуры(_код, , , , _симв, ФСО)
    Если
Лев(Форма.ТекущаяКолонка(),12)="Наименование" Тогда
        Если
ПустоеЗначение(ОтборУстановлен)=0 Тогда
           
УстановитьОтбор("","");
            Возврат;
        КонецЕсли;
        Если (
=1) или (=1) или (=1) Тогда
           
ФСО=1;
            Возврат;
        КонецЕсли;
        Если
_код = 27 Тогда
            Если СтрокаСимволов="" Тогда 
                Фсо = 1
                Возврат;
            КонецЕсли;

            КурсорНаЭлементе = ТекущийЭлемент();
           
СтрокаСимволов = "";
           
Форма.Наименование.Заголовок("Наименование");
            
СпЗн.УдалитьВсе();
            ИспользоватьСписокЭлементов();
            
ИерархическийСписок(ТекФлагИерархическогоСписка,1);
            Попытка
               
АктивизироватьОбъект(КурсорНаЭлементе);
            Исключение
            КонецПопытки;
           
ФСО = 1;
            Возврат;
        ИначеЕсли
_код = 8 Тогда
           
СтрокаСимволов = Лев(СтрокаСимволов, СтрДлина(СтрокаСимволов)-1);
        ИначеЕсли
_симв="" Тогда
           
ФСО = 1;
            Возврат;
        ИначеЕсли
Найти(глСтрокаРазрешенныхСимволов, Нрег(_симв))>0 Тогда
           
СтрокаСимволов = СтрокаСимволов + _симв;
        Иначе
           
ФСО = 1;
            Возврат;
        КонецЕсли;
       
Форма.Наименование.Заголовок("Наименование ("+СтрокаСимволов+")");
       
СпЗн = ПолучитьСписокЭлементов("Номенклатура", СтрокаСимволов);
       
ИспользоватьСписокЭлементов(СпЗн);
       
ИерархическийСписок(0,0);
       
ФСО = 0;
    КонецЕсли;
КонецПроцедуры

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

Процедура ПриСменеИерархии(Способ)
    ТекФлагИерархическогоСписка = Способ;
КонецПроцедуры

Процедура ПриЗакрытии()
    СохранитьЗначение("ТекФлагИерархическогоСпискаНоменклатура",ТекФлагИерархическогоСписка);
КонецПроцедуры

15

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Модератор раздела artbear 03.07.12 16:59 Сейчас в теме
Плюсанул.
Тема интересна, хоть я от 77 и 1С++ отошел.

Не описан глРС, будет ошибка.
Дбф? скуль?
2. maxpiter 142 04.07.12 00:35 Сейчас в теме
(1)Поправил замечания в описании.
Работаю с SQL, но для DBF алгоритм такой же, возможно код запросов чуток другой.

p.s. Спасибо за +, от artbear плюс вообще приятно :)
3. gutentag 253 04.07.12 10:18 Сейчас в теме
4. Ёпрст 1036 04.07.12 10:56 Сейчас в теме
Только вот по первым символам и так есть поиск в форме списка справочника..
6. maxpiter 142 04.07.12 10:59 Сейчас в теме
(4) вот вредный, видно же что ищет не по первым символам, а сортирует по первым
7. Ёпрст 1036 04.07.12 11:03 Сейчас в теме
(6)
1.глСтрокаРазрешенныхСимволов - это что за зверь такой ?
2. не видно вводимых символов на форме (лучше уж тогда через ДобавитьАтрибут добавлять поле, как у A'Dirks-а)
3. запрос, на сколько я понял выполняется при каждом нажатии на кнопку клавиатуры, если это не эескейп, бекспейс ?
це-же медленно на большом спраочнике, лучше или начиная с 3-4 символа, или задержку втыкаить, как в софтпоинте сделали
9. maxpiter 142 04.07.12 11:19 Сейчас в теме
(7)
1. упустил
глСтрокаРазрешенныхСимволов = " .,-+*/\_0123456789абвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmn­opqrstuvwxyz";
набор символов по которым можно выполнять отбор.
2. видно, они набираются в поле "Наименование"
3. на справочнике более чем 5к элементов, примлемо. Действительно думал, чтобы начать фильтрацию с 3 символа, но пришел к выводу, что лучше с первого.
Разве что, при наборе первого символа искать не все вхождения а именно только те у которыех он первый, но тут будут не очень нормальные варианты с ё, й, ы, ь, ъ.

(8)
спасибо, так пробовал, вываливалось с ошибкой, а вот УстановитьОтбор("",""); только сейчас предположил и получилось, хотя второй параметр и написано что необязательный.

изменил в коде и описание.
10. Ёпрст 1036 04.07.12 11:47 Сейчас в теме
(9) ааа...
т.е "МАМА Мыла РАМУ" уже не канает для поиска ?
жаль..
11. maxpiter 142 04.07.12 12:57 Сейчас в теме
(10) почему не канает-то???? где сказано что не канает?
уже столько написал, давно бы попробовал :)
5. Ёпрст 1036 04.07.12 10:57 Сейчас в теме
8. Ёпрст 1036 04.07.12 11:05 Сейчас в теме
>>>как программно снять отбор ?

УстановитьОтбор("");
12. maxpiter 142 04.07.12 13:00 Сейчас в теме
+11 SQL ищет без учета регистра, если ему конкретно не скажут что нужно учитывать регистр.
13. Ёпрст 1036 04.07.12 13:04 Сейчас в теме
(12) при чем тут то, что ищет скуль ?

Ты сам ограничил набор вводимых символов - у тебя заглавные символы ввести нельзя.

:))))
16. maxpiter 142 04.07.12 13:08 Сейчас в теме
(13) а заглавные ввести нельзя, потому что shift, alt и ctrl вообще из поиска исключаю
14. Ёпрст 1036 04.07.12 13:06 Сейчас в теме
А ёпт.. Нрег не заметил в Найти..
Забираю слова обратно
15. maxpiter 142 04.07.12 13:07 Сейчас в теме
(14) попробуй уже а? и напиши че нить хорошее :)
17. Ёпрст 1036 04.07.12 13:08 Сейчас в теме
И это, ставить не буду - тёткам удобно видеть весь справочник, им и штатный поиск по первым символам в форме списка устраивает, причем, он штатно "множественный", т.е нашли первое совпадение, потом можно "бегать" по форме списка вверх вниз по этим совпадениям - привыкли так ужо.
19. maxpiter 142 04.07.12 13:11 Сейчас в теме
(17) мои тоже привыкли, но когда в списке ароматизаторов около 200 штук и все начинаются Ароматизатор и только потом различие, то проще набрать аром лимон :) и уже бегать глазками по оставшемуся десятку.
>> привыкли так ужо. - привычка дело может быть навязанной, причем в данном случае 1С :)
18. Ёпрст 1036 04.07.12 13:10 Сейчас в теме
Хотя..ща прикручу, "послушаю" народное мнение..
:)
maxpiter; +1 Ответить
60. maxpiter 142 26.07.12 10:22 Сейчас в теме
(18)(59) какой результат тестов, пользуются юзвери? :)
61. Dolly_EV 267 31.07.12 03:51 Сейчас в теме
(60) из отпуска только сегодня, но судя по тому, что вопросов нет - пользуются, и видимо понравилось))
20. Ёпрст 1036 04.07.12 13:13 Сейчас в теме
Это ..еще недочет:

в ПриОткрытии, нужно проверить, что флагиерархического просмотра восстановлен..иначе болт
21. maxpiter 142 04.07.12 13:14 Сейчас в теме
23. Ёпрст 1036 04.07.12 13:20 Сейчас в теме
(21) этого нету

Процедура ПриОткрытии()
ТекФлагИерархическогоСписка = ВосстановитьЗначение("ТекФлагИерархическогоСпискаНоменклатура");

вот тут болт, ибо нет еще сохраненного "ТекФлагИерархическогоСпискаНоменклатура" при открытии при первом открытии, да и при закрытии сохранять нечего, если иерархию не меняли.
22. Ёпрст 1036 04.07.12 13:18 Сейчас в теме
СпЗн = ПолучитьСписокЭлементов("Номенклатура"<<?>>);
{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(100)}: Недостаточно фактических параметров
При проверке модуля обнаружены синтаксические ошибки!
24. maxpiter 142 04.07.12 13:28 Сейчас в теме
(22) СпЗн = ПолучитьСписокЭлементов("Номенклатура",СтрокаСимволов);
(23) согласен, если пустое значение после ВосстановитьЗначение, то нужно получить текущее
25. Ёпрст 1036 04.07.12 13:33 Сейчас в теме
(24) :)

Это.. при нажатии Эскейп, нужно проверить, если строка символов не пустая (или было уже нажатия и потом удалили символы, короче, что уже есть использоватьсписокэлементов), то ФСО нужно делать = 0, а не 1, иначе справочник закроется.
26. Ёпрст 1036 04.07.12 13:38 Сейчас в теме
ну и это, чариндекс выкинуть из селекта и запихать в ордербай
27. maxpiter 142 04.07.12 13:46 Сейчас в теме
28. Ёпрст 1036 04.07.12 13:46 Сейчас в теме
29. maxpiter 142 04.07.12 13:54 Сейчас в теме
(28) ммм, вот это аргумент, в данном случае каждая миллисекунда дорога :)
30. Ёпрст 1036 04.07.12 14:00 Сейчас в теме
И это.. фсо всё же поправь для Esc
32. maxpiter 142 04.07.12 14:02 Сейчас в теме
(30) код который я представил у меня в форме списка, в форме выбора дейстивтельно есть небольшая добавочка
Если _код = 27 Тогда
Если СтрокаСимволов="" Тогда
Фсо = 1;
Возврат;
КонецЕсли;
....
31. maxpiter 142 04.07.12 14:00 Сейчас в теме
+29 хотя у меня case в select работает все таки чуток быстрее, может быть кеш.
Отличие ооочень мизерное. Оставлю как есть :)
33. maxpiter 142 04.07.12 14:22 Сейчас в теме
Вообще то. зная имя отбора и значение отбора, можно сгенерить условие фильтрации с учетом отбора :) и будет вообще хорошо
34. Dolly_EV 267 05.07.12 15:38 Сейчас в теме
(0) CHARINDEX для 1SQLite (dbf) чем заменить? :-((
35. Dolly_EV 267 05.07.12 16:37 Сейчас в теме
+(34) Мдаа... без CHARINDEX на DBF нелогично сортировка получается, юзер не поймет :-(
37. maxpiter 142 05.07.12 17:09 Сейчас в теме
36. maxpiter 142 05.07.12 17:06 Сейчас в теме
41. Dolly_EV 267 06.07.12 05:48 Сейчас в теме
(36) 1.0.2.4 (уже 1.0.2.6)
Вместо чариндекс можно конечно огород нагородить с тз и Найти(СтрДляПозиции,Наименование), но скорость потеряется :-(
42. Ёпрст 1036 06.07.12 09:11 Сейчас в теме
(41) юзай запрос на фоксе - он быстрее и там есть аналог чариндекса - AT()
43. Dolly_EV 267 06.07.12 09:49 Сейчас в теме
(42) а с монопольностью там нормально? и пример бы в студию
44. Ёпрст 1036 06.07.12 10:11 Сейчас в теме
(43) нормально.
Ставишь решение от hogik и привет
48. Dolly_EV 267 06.07.12 10:58 Сейчас в теме
(44) ADS муторно :-(... хотя в 2009-м он меня реально спас. Сейчас решил по периферийкам - по дорастанию до критической массы - переводить на SQL
50. Ёпрст 1036 06.07.12 11:09 Сейчас в теме
38. dumal 05.07.12 23:55 Сейчас в теме
Хорошая вещь. Можно внедрить в тех местах, где народ пользуется 7.7 и даже не планирует переходить на 8ку. Жаль только, sql...
39. maxpiter 142 05.07.12 23:59 Сейчас в теме
(38) в DBF пока уперлось в CHARINDEX, но может это все таки решаемо?
40. dumal 06.07.12 00:13 Сейчас в теме
Да, я прочитал в комментариях. Решения у меня нет :(
45. Ёпрст 1036 06.07.12 10:31 Сейчас в теме
+44
|select id as [Элем $Справочник.Номенклатура]
|,iif(at('туф',lower(descr))=0,999,at('туф',lower(descr))) as вася
|from $Справочник.Номенклатура спр
|where 
|(lower(descr) like '%туф%') 
|and 
|(lower(descr) like '%жен%')
|order by вася
Показать
46. maxpiter 142 06.07.12 10:38 Сейчас в теме
47. Ёпрст 1036 06.07.12 10:45 Сейчас в теме
(46) я твой код переделал..
мне лень даже 1cqa открыть
49. Dolly_EV 267 06.07.12 11:00 Сейчас в теме
(45) дрова для Фокса - достаточно библиотек вот отсюда http://www.1cpp.ru/forum/YaBB.pl?num=1210677779/30 ?
53. Dolly_EV 267 06.07.12 13:05 Сейчас в теме
(45) В ПриОткрытии():
		СтрСоединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Exclusive=Yes;Mode=ReadWrite;Collating Sequence=MACHINE";
		ДБ = СоздатьОбъект("OLEDBData");
		Рез = ДБ.Соединение(СтрСоединение);
		лЗапросФокс = ДБ.СоздатьКоманду();
		лЗапросФокс.Выполнить("EXECSCRIPT('SET ANSI OFF')");  
		лЗапросФокс.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')");
		лЗапросФокс.Выполнить("Exec('SET TABLEVALIDATE TO 0')");
		лЗапросФокс.Отладка(1);

ТекстЗапроса:
SELECT
	ID [Ссылка $Справочник.Номенклатура],
	iif(at('в',lower(Номенклатура.DESCR))=0,999,at('в',lower(Номенклатура.DESCR))) AS ПозицияВСтроке
FROM
	Справочник.Номенклатура AS Номенклатура
WHERE
	(Номенклатура.ISFOLDER >= 0)

AND (lower(Номенклатура.DESCR) LIKE '%в%')

ORDER BY ПозицияВСтроке,Номенклатура.DESCR
Показать


лТЗ=лЗапросФокс.ВыполнитьИнструкцию(ТекстЗапроса);
{Справочник.Номенклатура.ФормаСписка.Основная.Модуль(101)}: FAILED! ICommandText::Execute(): Too many arguments.

Где засада?
54. Dolly_EV 267 06.07.12 13:14 Сейчас в теме
(53) все, разобрался.. ВЗЛЕТЕЛО! УРА! осталось только hogika прикрутить, чтобы в монопольном взлетело
P.S. Теперь и монопольно - спасибо hogik'у
55. maxpiter 142 06.07.12 13:16 Сейчас в теме
(54) при наборе текста, скорость фильтрации приемлемая?
56. Dolly_EV 267 06.07.12 13:30 Сейчас в теме
(55) Приемлемо (Номенклатура 25K), причем на dbf через фокса - заметно бастрее получилось, чем через SQLite. На SQL - медленнее, но там у меня еще заморочка с получением остатков.

Только стоит все-таки наверно с третьего символа начинать фильтровать ?
и еще: для Esc при НЕпустой СтрокаСимволов надо ФСО=0 - а то форма выбора закрывается (30)
57. maxpiter 142 06.07.12 14:17 Сейчас в теме
(56) >> Только стоит все-таки наверно с третьего символа начинать фильтровать ?
Тоже не совсем логично может получиться.
В качестве идеи для обсуждения. Сделать как в поисковиках.
При открытии выдавать пустой справочник, при наборе выводить то что нашлось скажем TOP 20 пока не наберет больше 3х символов. Как больше трех набрал выводит все.
59. Dolly_EV 267 06.07.12 15:06 Сейчас в теме
(56) Пока как есть оставил, пусть юзеры потестят, потом расспросим
52. Dolly_EV 267 06.07.12 11:50 Сейчас в теме
(51) ааа, я это как-то упустил :-(( думал, ты имеешь ввиду вот эту: http://infostart.ru/public/15211/
58. maxpiter 142 06.07.12 14:18 Сейчас в теме
+57 ну понятно, что эта опция для каждого может индивидуально настраиваться в настройках пользователя.
Оставьте свое сообщение

См. также

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

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

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

14.10.2019    489    ksnik    0       

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

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

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

16.05.2016    8154    kudenzov    3       

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

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

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

12.03.2016    15460    CheBurator    18       

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

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

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

10.03.2016    48321    Serginio    33       

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

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

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

09.03.2016    25346    Serginio    22       

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

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

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

27.01.2016    62715    Serginio    104       

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

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

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

16.12.2015    19955    Palmer1976    3       

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

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

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

23.11.2015    13931    etmarket    14       

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

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

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

24.09.2015    13758    Anzhey    13       

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

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

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

05.07.2015    14755    json    1       

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

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

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

20.06.2015    10014    gimalaj    3       

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

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

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

16.01.2015    70769    shmellevich    35       

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

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

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

20.08.2014    5974    hvv2002    0       

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

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

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

24.07.2014    18717    tomvlad    5       

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

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

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

03.03.2014    15308    kompas-dm    5       

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

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

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

15.07.2013    5517    a.o.popova    10       

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

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

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

11.04.2013    13085    Dima_    8       

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

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

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

22.03.2013    11040    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    22161    serg_gres    6       

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

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

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

08.08.2012    14113    www2000    4       

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

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

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

28.04.2012    15844    Valerich    31       

v77. Робот 43

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

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

09.04.2012    10166    54    item    18       

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

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

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

20.03.2012    39470    Yury1001    17       

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

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

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

09.03.2012    8794    44    item    17       

v77. Паинт 53

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

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

06.03.2012    11879    81    item    38       

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

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

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

12.01.2012    13175    ShEvOvIcH    18       

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

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

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

28.11.2011    6348    sdin101    9       

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

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

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

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

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

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

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

08.09.2011    9544    Sykoku    8       

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

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

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

14.06.2011    19390    vkr    48       

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

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

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

26.05.2011    10516    Vix    4       

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

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

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

26.05.2011    16834    Vix    5       

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

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

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

08.04.2011    42002    AleksR    102       

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

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

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

11.03.2011    16404    d0dger    12       

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

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

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

11.03.2011    10173    Nicholas    9       

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

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

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

02.02.2011    17094    1st    6       

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

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

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

25.01.2011    12190    Cvetic    26       

Тюнинг Бух 7.7.: Микрографики в ТЧ документа. 49

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

Как вставить в документ что-то вроде диаграммы распределения сумм…

25.01.2011    18168    Арчибальд    18