Два механизма, которые ускорили работу бухгалтеров в 1С

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

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

71
Речь пойдет о собственных идеях и их реализации. Доработки были проведены на конфигурации "1С: Бухгалтерия предприятия 8" в далеком 2010 году. Механизмы не привязаны к одной какой-либо типовой конфигурации - их можно реализовать в любой конфигурации. И даже не привязаны к платформе 1С - их можно реализовать на любой платформе. Возможно, эти идеи будут востребованы в самописных и отраслевых решениях 1С. Доработки достаточно просты, при этом ни в одной типовой конфигурации не реализованы.

   Из наблюдений за работой бухгалтеров: бухгалтера постоянно открывают список входящих платежек с отбором по контрагенту, чтобы увидеть, какие платежки по нему заведены в базе. Затем открывают список счетов на оплату с отбором по данному контрагенту. Затем открывают ОСВ по заданному счету опять-таки с отбором по контрагенту. Затем снова открывают счета на оплату, платежки и ОСВ по счету с отбором по другому контрагенту. И так много раз в течение рабочего дня…
   При этом в данном случае механизм структуры подчиненности документов и акты сверок практически не используются по ряду причин, и поэтому не могут ускорить работу бухгалтеров.  
    Чтобы открыть одну форму списка, установить отбор по контрагенту, затем открыть другую форму списка или отчет, снова установить отбор по контрагенту – понадобится с десяток кликов и 1-2-3 мин ожидания на отклик программы.
    Представляю вам две небольшие доработки программы, которые ускорили работу бухгалтеров:
1) переход в списки документов (отчеты) через контекстное меню (рис.1);
2) использование статистики частоты обращения в программе к контрагентам.

Входящие платежки

Рис. 1. Контекстное меню списка входящих платежек.

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

1. Переход в списки через контекстное меню


    Суть - в операционной системе Windows сильно развит механизм контекстного меню: при нажатии правой кнопки мыши выходит список команд, выполняемых с  объектом. Я реализовал подобный механизм в 1С – для каждого списка документов появляется контекстное меню со своим списком команд.
    На платформе 8 (обычные формы) имеется встроенный механизм контекстного меню, использующий командную панель как поставщика команд в соответствующее контекстное меню – вот этот механизм я взял за основу.
    В тех списках, где мне нужна была функциональность контекстного меню, я добавлял свою командную панель или использовал имеющуюся, относящуюся к форме – добавлял необходимые кнопки (рис.2, 3, 4).

Журнал счетов

 Рис. 2. Контекстное меню списка счетов на оплату.

ОСВ по счету

  Рис. 3. Контекстное меню оборотно-сальдовой ведомости по счету.

Счет на оплату

  Рис. 4. Контекстное меню счета на оплату.

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

Реестр контрагентов

 Рис. 5. Пример разработки контекстного меню для регистра сведений.

Командная панель

Рис. 6. Командная панель для реализации контекстного меню для регистра сведений.

 

 

//быстрый переход к другим документам {
Процедура КоманднаяПанельПереходКДокументамОткрытьОСВ(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;    
    Если ТекСтрока = Неопределено Тогда       
       Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьОСВ(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьКарточкуСчета(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;
    Если ТекСтрока = Неопределено Тогда       
       Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьКарточкуСчета(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьВходящиеПлатежки(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;   
    Если ТекСтрока = Неопределено Тогда       
      Возврат;   
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьВходящиеПлатежки(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

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

Процедура КоманднаяПанельПереходКДокументамОткрытьСправочникКонтрагенты(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;   
    Если ТекСтрока = Неопределено Тогда        
      Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьСправочникКонтрагенты(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьРеестрСвидетельств(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;   
    Если ТекСтрока = Неопределено Тогда       
      Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьРеестрСвидетельств(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамНазад(Кнопка)
    МодульПро.КоманднаяПанельПереходКДокументамНазад(ЭтаФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьСписокСчетов(Кнопка)
    ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока;   
    Если ТекСтрока = Неопределено Тогда        
      Возврат;    
    КонецЕсли;
    МодульПро.КоманднаяПанельПереходКДокументамОткрытьСписокСчетов(ТекСтрока.Контрагент, ЭтаФорма);
КонецПроцедуры

Процедура ПриОткрытии()     
    МодульПро.УдалитьКнопкуИзКоманднойПанели(РегистрСведенийСписок, ЭтаФорма);
КонецПроцедуры
//быстрый переход к другим документам }

 


   Процедуры общего модуля "МодульПро" представлены ниже.

 

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

Процедура ОткрытьОтчет(НазваниеОтчета, Контрагент, ПредыдущаяФорма)
    Отчет = Отчеты[НазваниеОтчета].Создать();        
    Отчет.Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.05.3");    
    Отчет.Организация   = Справочники.Организации.НайтиПоКоду("000000001");      
    Отчет.ДатаНач       = Неопределено;    
    Отчет.ДатаКон       = Неопределено;
    Отчет.ЗаполнитьНачальныеНастройки();
    ФормаОтчета = Отчет.ПолучитьФорму(,ПредыдущаяФорма);
    ФормаОтчета.НеЗаполнятьНастройкиПриОткрытии = Истина;
    Если ЗначениеЗаполнено(Контрагент) Тогда       
      ФормаОтчета.Контрагент = Контрагент;    
    Иначе        
       Возврат;    
    КонецЕсли;
    ЭлементОтбора = Отчет.ПостроительОтчета.Отбор.Найти("Субконто1");   
    Если ЭлементОтбора = Неопределено Тогда       
      ЭлементОтбора = Отчет.ПостроительОтчета.Отбор.Добавить("Субконто1");   
    КонецЕсли;
    ЭлементОтбора.Использование = Истина;    
    ЭлементОтбора.ВидСравнения  = ВидСравнения.Равно; 
    ЭлементОтбора.Значение      = Контрагент;
    Если НазваниеОтчета = "ОборотноСальдоваяВедомостьПоСчетуХозрасчетный" Тогда       
      Отчет.ПостроительОтчета.ИзмеренияСтроки.Добавить("Субконто1");      
      Отчет.ПостроительОтчета.ИзмеренияСтроки.Добавить("Субконто2");        
    КонецЕсли;
    Если ФормаОтчета.Открыта() Тогда       
      ФормаОтчета.Активизировать();    
    Иначе        
      ФормаОтчета.Открыть();   
    КонецЕсли;
    ФормаОтчета.ОбновитьОтчет();
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьОСВ(Контрагент, ПредыдущаяФорма) Экспорт
    НазваниеОтчета = "ОборотноСальдоваяВедомостьПоСчетуХозрасчетный";   
    ОткрытьОтчет(НазваниеОтчета, Контрагент, ПредыдущаяФорма);
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьКарточкуСчета(Контрагент, ПредыдущаяФорма) Экспорт
    НазваниеОтчета = "КарточкаСчетаХозрасчетный";  
    ОткрытьОтчет(НазваниеОтчета, Контрагент, ПредыдущаяФорма);
КонецПроцедуры

Процедура ОткрытьПлатежки(НазваниеПлатежки, Контрагент, ПредыдущаяФорма)
    Если НазваниеПлатежки = "ПлатежноеПоручениеИсходящее" Тогда
    Запрос = Новый Запрос;       
    Запрос.Текст = "ВЫБРАТЬ        
    |   ПлатежноеПоручениеИсходящее.Ссылка        
    |ИЗ        
    |   Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручениеИсходящее       
    |ГДЕ        
    |   (ПлатежноеПоручениеИсходящее.Контрагент = &Контрагент       
    |           ИЛИ ПлатежноеПоручениеИсходящее.КонтрагентДолжник = &Контрагент)";
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Результат = Запрос.Выполнить();        
    Выборка = Результат.Выбрать();
    СЗ = Новый СписокЗначений;        
    Пока Выборка.Следующий() Цикл            
       СЗ.Добавить(Выборка.Ссылка);        
    КонецЦикла;
    ФормаСписка = Документы.ПлатежноеПоручениеИсходящее.ПолучитьФормуСписка(,ПредыдущаяФорма);        
    ОтборСписка     = ФормаСписка.ДокументСписок.Отбор;        
    ЭлементОтбора   = ОтборСписка.Ссылка;
    ЭлементОтбора.Использование     = Истина;        
    ЭлементОтбора.ВидСравнения      = ВидСравнения.ВСписке;    
    ЭлементОтбора.Значение          = СЗ;
    Если ФормаСписка.Открыта() Тогда           
      ФормаСписка.Активизировать();        
    Иначе            
      ФормаСписка.Открыть();        
    КонецЕсли;
    Иначе
       ФормаСписка     = Документы[НазваниеПлатежки].ПолучитьФормуСписка(,ПредыдущаяФорма);        
       ОтборСписка     = ФормаСписка.ДокументСписок.Отбор;        
       ЭлементОтбора   = ОтборСписка.Контрагент;
       ЭлементОтбора.Использование     = Истина;        
       ЭлементОтбора.ВидСравнения      = ВидСравнения.Равно;       
       ЭлементОтбора.Значение          = Контрагент;
       Если ФормаСписка.Открыта() Тогда          
           ФормаСписка.Активизировать();       
       Иначе           
           ФормаСписка.Открыть();    
       КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Процедура КоманднаяПанельПереходКДокументамОткрытьВходящиеПлатежки(Контрагент, ПредыдущаяФорма) Экспорт
    НазваниеПлатежки = "ПлатежноеПоручениеВходящее";  
    ОткрытьПлатежки(НазваниеПлатежки, Контрагент, ПредыдущаяФорма);
КонецПроцедуры

ПроцедураКоманднаяПанельПереходКДокументамОткрытьИсходящиеПлатежки(Контрагент,ПредыдущаяФорма) Экспорт
    НазваниеПлатежки = "ПлатежноеПоручениеИсходящее";   
    ОткрытьПлатежки(НазваниеПлатежки, Контрагент, ПредыдущаяФорма);
КонецПроцедуры

ПроцедураКоманднаяПанельПереходКДокументамОткрытьСправочникКонтрагенты(Контрагент,ПредыдущаяФорма)  Экспорт
    ФормаЭлемента = Контрагент.ПолучитьФорму("ФормаЭлемента", ПредыдущаяФорма);
    Если ФормаЭлемента.Открыта() Тогда        
       ФормаЭлемента.Активизировать();   
    Иначе        
       ФормаЭлемента.Открыть();    
    КонецЕсли;
КонецПроцедуры

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

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

Процедура КоманднаяПанельПереходКДокументамОткрытьСписокСчетов(Контрагент, ПредыдущаяФорма) Экспорт
    Форма = ЖурналыДокументов.ЖурналСчетов.ПолучитьФорму(,ПредыдущаяФорма);   
    ОтборСписка     = Форма.ЖурналДокументовСписок.Отбор;    
    ЭлементОтбора   = ОтборСписка.Контрагент;
    ЭлементОтбора.Использование     = Истина;   
    ЭлементОтбора.ВидСравнения      = ВидСравнения.Равно;  
    ЭлементОтбора.Значение          = Контрагент;
    Если Форма.Открыта() Тогда       
       Форма.Активизировать();    
    Иначе       
       Форма.Открыть(); 
    КонецЕсли;
КонецПроцедуры

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


 

     Из моих наблюдений: типовое контекстное меню в формах списков практически не используется. Контекстное меню, доработанное под задачи Заказчика – используется на 100%. Переход между формами при использовании контекстного меню происходит в два клика (правая, затем левая кнопки мыши) и за две секунды. Отличный результат!

 

2. Использование статистики обращения в базе к контрагентам

    Как было. Из наблюдений за работой бухгалтеров: если в открытой форме необходимо заполнить или выбрать контрагента, то на поиск контрагента уходит более 20 секунд. Связано это с тем, что контрагентов более 3000, наименования похожи и даже одинаковы, если из разных городов.
    Также часто происходит так: один бухгалтер просмотрел заведенный документ или создал новый, дал поручение другому бухгалтеру – отправить счет на оплату на электронку, прокрыжить расхождения или др. Второй бухгалтер открывает формы документов, отчеты и анализирует того же контрагента.  
     Или другая ситуация: звонит контрагент - поднявший трубку бухгалтер в программе сверил долг контрагента, затем переключает на второго бухгалтера для продолжения разговора. При этом наименование контрагента передает второму бухгалтеру по телефонной трубке – на запоминание практически нет времени. Второму бухгалтеру требуется быстро открыть форму списка документов, быстро установить отбор по данному контрагенту.
    В результате я создал регистр сведений «Обращения к контрагентам», в определенных формах, где имеется поле «Контрагент», через событие ПриИзменении поля записываю в этот регистр сведений информацию об обращении (рис.7 и ниже код программы).

 Обращения к контрагентам

Рис. 7. Регистр сведений "Статистика обращений".

 

Процедура КонтрагентПриИзменении(Элемент)
     Если ЗначениеЗаполнено(Контрагент) Тогда
        ОтборПоКонтрагенту = ЖурналДокументовСписок.Отбор.Контрагент;        
        ОтборПоКонтрагенту.Установить(Контрагент);
        МодульПро.ЗафиксироватьОбращениеККонтрагенту(Контрагент);
    КонецЕсли;
КонецПроцедуры

Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)    
    МодульПро.КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка);
КонецПроцедуры

 


Процедуры общего модуля представлены ниже.

 

//оптимизация работы - упорядочивание списка контрагентов в поле ввода быстрого поиска
Процедура ЗафиксироватьОбращениеККонтрагенту(Контрагент) Экспорт
    НЗ = РегистрыСведений.ОбращенияККонтрагенту.СоздатьНаборЗаписей(); 
    НЗ.Отбор.Контрагент.Установить(Контрагент); 
    НЗ.Отбор.Период.Установить(ТекущаяДата()); 
    НЗ.Прочитать();
    Запись = ?(НЗ.Количество()=1, НЗ[0], НЗ.Добавить()); 
    Запись.Период = ТекущаяДата(); 
    Запись.Контрагент = Контрагент; 
    Запись.КоличествоОбращений = Запись.КоличествоОбращений + 1;
    НЗ.Записать();
КонецПроцедуры

Процедура ОбнулитьСтатистикуОбращенийККонтрагентам() Экспорт
    Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ 
    | ОбращенияККонтрагенту.Период 
    |ИЗ 
    | РегистрСведений.ОбращенияККонтрагенту КАК ОбращенияККонтрагенту 
    |ГДЕ 
    | ОбращенияККонтрагенту.Период <> &Период";
    Запрос.УстановитьПараметр("Период", НачалоДня(ТекущаяДата()));
    Результат = Запрос.Выполнить(); 
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
       НЗ = РегистрыСведений.ОбращенияККонтрагенту.СоздатьНаборЗаписей(); 
       НЗ.Отбор.Период.Установить(Выборка.Период); 
       НЗ.Записать();
    КонецЦикла;
КонецПроцедуры

 


  Обнуление статистики происходит при завершении работы с программой пользователя с Ролью «ОбнулятьСтатистикуОбращений». Из трех бухгалтеров такую роль имеют любые два бухгалтера из соображений, что в отпуск они уходят по очереди и по одному.
    В формах, где происходит выбор контрагента, переопределено событие ОкончаниеВводаТекста: в выпадающем списке контрагенты упорядочиваются по количеству обращений – как правило, первым в списке появляется контрагент, который только что был выбран в другой форме. Так как в данном списке в названии контрагента отображается город и фамилия руководителя, то в выпадающем списке контрагент определяется однозначно (рис.8 и ниже код программы).

Подбор контрагентов

Рис. 8. Поле быстрого поиска контрагента (быстрый отбор по контрагенту).

 

Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) 
   МодульПро.КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка);
КонецПроцедуры

 

Процедура общего модуля представлена ниже.

 

Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) Экспорт
    СтандартнаяОбработка = Ложь;
    Запрос = Новый Запрос;    
    Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ    
    |   Контрагенты.Ссылка КАК Ссылка,    
    |   Контрагенты.Наименование,    
    |   Контрагенты.ИНН,    
    |   Контрагенты.ПометкаУдаления,   
    |   ЕСТЬNULL(СтатистикаОбращений.КоличествоОбращений, 0) КАК КолвоОбращений    
    |ИЗ    
    |   Справочник.Контрагенты КАК Контрагенты    
    |       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ    
    |           ОбращенияККонтрагентуСрезПоследних.Контрагент КАК Контрагент,    
    |           ОбращенияККонтрагентуСрезПоследних.КоличествоОбращений КАК КоличествоОбращений    
    |       ИЗ    
    |           РегистрСведений.ОбращенияККонтрагенту.СрезПоследних КАК ОбращенияККонтрагентуСрезПоследних) КАК СтатистикаОбращений    
    |       ПО Контрагенты.Ссылка = СтатистикаОбращений.Контрагент    
    |ГДЕ   
    |   (Контрагенты.Наименование ПОДОБНО ""%"" + &Текст + ""%""   
    |           ИЛИ Контрагенты.ИНН ПОДОБНО ""%"" + &Текст + ""%"")   
    |   И Контрагенты.ЭтоГруппа = ЛОЖЬ    
    |   И Контрагенты.ПометкаУдаления = ЛОЖЬ   
    |   
    |УПОРЯДОЧИТЬ ПО    
    |   КолвоОбращений УБЫВ,   
    |   Ссылка   
    |АВТОУПОРЯДОЧИВАНИЕ";
    Запрос.УстановитьПараметр("Текст", Текст);
    Результат = Запрос.Выполнить();    
    Выборка = Результат.Выбрать();
    Если Выборка.Количество()=1 И Выборка.Следующий() Тогда        
       Значение = Выборка.Ссылка;        
       Возврат;    
    КонецЕсли;
    Значение = Новый СписокЗначений;
    Если Выборка.Количество() >= 50 Тогда //выгрузим первые 49 организаций согласно статистики обращений и сообщим об этом пользователю
        Значение.Добавить(Справочники.Контрагенты.ПустаяСсылка(), " ... НАЙДЕНО  БОЛЕЕ  50  ЭЛЕМЕНТОВ!  ЗАДАЙТЕ  ДРУГУЮ  СТРОКУ  ПОИСКА ...");
        Колво = 1;
        Пока Выборка.Следующий() И Колво < 50 Цикл
            Адрес = ПолучитьАдресИРуководителя(Выборка.Ссылка);
            Значение.Добавить(Выборка.Ссылка, "" + ВРЕГ(СокрЛП(Выборка.Наименование)) + ", ИНН " + Выборка.ИНН + "   "                                
            + Адрес, Выборка.ПометкаУдаления);
            Колво = Колво + 1;
        КонецЦикла;
    Иначе
        Пока Выборка.Следующий() Цикл
            Адрес = ПолучитьАдресИРуководителя(Выборка.Ссылка);
            Значение.Добавить(Выборка.Ссылка, "" + ВРЕГ(СокрЛП(Выборка.Наименование)) + ", ИНН " + Выборка.ИНН + "   "                                
            + Адрес, Выборка.ПометкаУдаления);
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

 

 

   После внедрения статистики обращения подбор контрагента в формах списков и отчетах ускорился с 20 секунд до 3 секунд. Отличный результат!

  На мой взгляд, статистику обращений можно с успехом внедрить в отдел продаж для менеджеров, например как элемент подсистемы CRM. Контекстное меню с успехом можно внедрять в любой отдел, программируя свою функциональность, соответствующую каждому отделу. :)

Всем всего доброго и успехов в работе!

Центр автоматизации, г. Казань


См. также:

Как эффективно использовать Инфостарт NEW!

Список реализаций + структура подчиненности + реестр документов SALE'1sm

Список заказов поставщикам + структура подчиненности SALE'1sm

Список заказов покупателей + структура подчиненности SALE'1sm

Договоры для 1с-ника ТОП-скачиваний

Сетка расписания (Планировщик) нестанДАрт

Два механизма, которые ускорили работу бухгалтеров в 1С нестанДАрт

Мини-CRM для УТ 10.3

Расчет банковских (рабочих) дней нестанДАрт

Шаблоны кода в режиме 1С:Предприятие SALE'1sm

Доработка конфигурации Конвертация Данных

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

Ввод показателей план-факта БП 3.0 Know-how

Инвентаризация личного опыта Для новичков 1С

Большие запросы: взгляд на проблему нестанДАрт

Технология создания коммерческих разработок Know-how

Андроид-решение для создания заказов в 1С Know-how + нестанДАрт

Отчет Остатки и цены

Печать ценников с одной и двумя ценами 55х40, 100х60, 140х200

Загрузка данных о розничных продажах из магазинов Intimissimi (Интимиссими) и Calzedonia (Кальцедония)

Доработки обмена "УТ 10.3 - интернет-магазина Shop-Script"

71

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

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо
1. Antel 2 13.06.15 19:12 Сейчас в теме
Увидел надписи в "капсе" на картинках и дальше смотреть не стал.

П.С. бухгалтера такие тупые что прочитать без капса не смогут
корум; sergelemon; webester; +3 3 Ответить
2. vasyak319 132 13.06.15 20:30 Сейчас в теме
(1) Antel, чувство прекрасного у автора, конечно, своеобразное, но идеи мне понравились. Не понял только, WTF "обнуление статистики при завершении работы пользователя с ролью".
17. nick_krsk 16 25.06.15 13:08 Сейчас в теме
(2) vasyak319, чтобы РС не засорять, видимо.
4. MaxDavid 123 13.06.15 23:26 Сейчас в теме
(1) Antel,
Увидел надписи в "капсе" на картинках и дальше смотреть не стал.
Полагаю, капс понадобился для быстрого визуального отличия стандартных пунктов контекстного меню от добавленных.
5. webester 29 14.06.15 06:24 Сейчас в теме
(4)То что буквы разные, этого недостаточно? В последнем скрине, в строке поиска, он что от чего отличает? Какими то 90ми пахнуло сразу и пенсионка в ДОСовском окне. Хардкодить ссылки в коде, типа "Организации.НайтиПоКоду("000000001")" тоже еще та глупость, обсудили уже сотню другую раз. Код не отформатирован и свален в кучу, считаю проявлением банальной лени и наплевательством выкладывание его в таком виде.
Hamsik; корум; u_n_k_n_o_w_n; Зеленоград; sergelemon; +5 1 Ответить
6. webester 29 14.06.15 06:27 Сейчас в теме
(5)А так это старый добрый Rustig, претензии сняты. не сразу узнал маэстро по почерку.
15. LineykaSBK 1 17.06.15 12:01 Сейчас в теме
(6) webester,
странное у Вас представление о претензиях. Сначала предъявил, потом не предъявил :+)
19. hromovanton 4 24.09.15 09:35 Сейчас в теме
(6) webester, А если бы это был не "старый добрый Rustig", то поливали бы дальше? !
u_n_k_n_o_w_n; +1 Ответить
3. script 207 13.06.15 23:19 Сейчас в теме
Предложу идею.

Задача
1. Необходимо в конфигурации Бухгалтерия 8.2. иметь журнал всех документов купателей, а именно: счета, реализации, акты сверок, налоговые, платежки, прих. кассовые ордера, и т.д.
2. Необходимо иметь возможность переходить в данный журнал из формы любого документа или из формы списка любого документа.
3. При переходе в полный журнал необходимо устанавливать отбор по контрагенту, который берется из документа источника.

Решение.
1. Здесь описывать нечеого.
2. Возникает необходимость изменять формы документов и формы списков, добавляя в командную панель новую кнопку "Перейти в полный журнал". Или добавиьь новый пункт меню в меню "Перейти", как это зделано у автора статьи.

Вот здесь остановимся. Все согласятся что менять кучу объектов в типовой конфе -это не по фэншую.
Предлагаю добавить новый объект конфигурации, а именно КритерийОтбора.ПолныйЖурнал.
Для нового объекта создаем форму, в которой приоткрытии пропишем переход в полный журнал с отбором.
Собственно все. вый объект автоматически добавиться в меню " Перейти".

7. Rustig 1204 14.06.15 08:20 Сейчас в теме +0.7 $m
(3)
2. Необходимо иметь возможность переходить в данный журнал из формы любого документа или из формы списка любого документа.

1) используя только типовые механизмы платформы (в том числе, критерий отбора) у вас не получится перейти в "полный журнал" из формы отчетов, не получится реализовать кнопку "Назад", да и вообще речь идет не о переходе в журнал документов, а о реализации "правой кнопки" мыши "удобно и практично", как это реализовано в Windows.
2) критерий отбора - отличный механизм, только ведь я написал что на данный момент измененная конфа не обновляется, что изложенные идеи возможно будут интересны для самописных и отраслевых решений, а вы пытаетесь "придумать", как это реализовать на типовой БП с минимальными потерями автоматического обновления. Раньше в конфигурациях не было возможности создавать собственные механизмы "Ввода на основании", не изменяя конфигурацию - сейчас это возможно реализовывать через "Внешние отчеты и обработки". Никто не пытается "натянуть" механизм "Ввода на основании" на старые механизмы платформы 8.2. Возможно, в будущем в платформе 8.3 будет реализован механизм, когда через "Внешние отчеты и обработки" мы сможем создавать свои командные панели или свои меню в этих панелях...
8. vasyak319 132 15.06.15 09:39 Сейчас в теме
(3) script, во-первых, чтобы добавить в формы документов БП2.0 (ну нету в природе конфигурации "Бухгалтерия 8.2") кнопку сами формы менять не нужно. Во-вторых, критерий отбора ДокументыПоДоговоруКонтрагента там уже есть. Не совсем то, но использовать для этих целей можно. В-третьих, вы долго будете в документах БП2.0 искать меню "Перейти" - нету его там.
10. script 207 15.06.15 13:57 Сейчас в теме
(8) vasyak319,
А у меня есть, потому что я в основном работаю с Бухгалтерей 8.2 ред 1.2 для Украины. Там везеде, в журналах, такая кнопка присутствует.
9. chmv 15.06.15 09:55 Сейчас в теме
11. gubanoff 46 15.06.15 14:08 Сейчас в теме
Статистика - это прекрасно. На самом деле делается быстро, а помочь может реально. Плюс программа превращается из калькулятора в подобие искусственного интеллекта, мне кажется, за этим будущее.
Ознакомился с публикациями автора, автор склонен к нестандартным решениям :)
goodron; Rustig; serg1983; Serg O.; pt_olga; +5 Ответить
12. DrAku1a 1303 17.06.15 04:06 Сейчас в теме
НЕ, РЕАЛЬНО, ЗАЧЕМ СТОЛЬКО "КЭПСА" ВЕЗДЕ? У ВАС НАСТОЛЬКО СЛЕПЫЕ БУХГАКТЕРЫ???

P.S. А идеи правильные и отличные!
14. Rustig 1204 17.06.15 09:15 Сейчас в теме
(12) женщины-бухгалтера мелкий, то есть стандартный шрифт, плохо видят, все в очках. Они не работают за ноутбуками, у которых экран по факту расположен ближе, чем отдельно стоящий монитор на столе. Стол широкий, монитор на краю стола, я лично сам не вижу - приходится приближать лицо к экрану. :(
Я в конфигурации изменил стандартный стиль - увеличил шрифт до 10, вы этого видимо не заметили, что журналы документов тоже крупнее, чем обычно, и отчеты крупнее. Также в конфигурации имеется служебная обработка, которая любой текст переводит в верхний регистр, потому что это часто приходилось делать...
Вообще что для вас "капса", для этих женщин-бухгалтеров нормальный размер шрифта.
Designer1C; +1 Ответить
16. tramontana 71 19.06.15 12:04 Сейчас в теме
(14) странное у вас представление о бухгалтерах. Прям сплошь слепые бабки, которые не знают, что монитор можно двигать.
13. Mantis 136 17.06.15 07:31 Сейчас в теме
Спасибо, идеи интересные.
18. fomix 26 25.06.15 14:52 Сейчас в теме
Плюсую, потому, что рад видеть в авторе разработчика, который не только о красоте кода заботится! Это, к сожалению, становится редкостью в наших рядах...
Оставьте свое сообщение

См. также

Агрегатные функции СКД, о которых мало кто знает 338

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    12480    ids79    44       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 250

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    13274    ids79    30       

"Меньше копипаста!", или как Вася универсальную процедуру писал 181

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    7380    SeiOkami    49       

Создание отчетов с помощью СКД - основные понятия и элементы 208

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    20322    ids79    17       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 178

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    12560    dmurk    134       

Регистры накопления. Структура хранения в базе данных 176

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    18556    YPermitin    27       

Выполнение внешней обработки в фоновом задании 149

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    10901    Eret1k    23       

Доработки УТ 10.3, улучшающие работу пользователей 11

Статья Программист Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 УУ Оптовая торговля Абонемент ($m) Обработка документов Рабочее место

Как показать прибыль по заказу, как показать прикрепленные файлы к документам - когда документов по заказу много, как показать расчет процентов по менеджерам - и все в одном окне УТ 10.3.

4 стартмани

26.04.2019    3491    4    Rustig    12       

Выгрузка документа по условию 5

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

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

25.04.2019    5610    m-rv    2       

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    8313    m-rv    16       

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

Инструменты и обработки Пользователь Внешняя обработка (ert,epf) v8 КА1 УТ10 УНФ УУ Оптовая торговля Розничная торговля Абонемент ($m) Рабочее место

Быстрый фильтр и отбор товаров (номенклатуры) по свойствам. Готовый механизм для УТ 10.3 и УНФ 1.6.

2 стартмани

14.04.2019    2881    5    Rustig    1       

О расширениях замолвите слово... 193

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    17603    ellavs    122       

Как свернуть базу УТ 10.3 27

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 Россия УУ Платные (руб) Свертка базы

Как свернуть УТ 10.3. Цель свертки - свернуть остатки по товарам и по взаиморасчетам с контрагентами.

1500 руб.

04.04.2019    6076    25    4       

Git-репозитории для 1С-кода (опыт использования при небольших проектах) 202

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

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    13571    ellavs    83       

Сравнение запросов 20

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Инструментарий разработчика

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

2 стартмани

16.03.2019    5500    10    Rustig    20       

Трюки с внешними источниками данных 166

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    13931    YPermitin    52       

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 165

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    17024    ids79    9       

Новый подход к обмену данными EnterpriseData 207

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Практика программирования Обмен через XML

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

14.12.2018    22808    ids79    72       

Счет на оплату с НДС 20% 3

Отчеты и формы Бухгалтер Внешняя обработка (ert,epf) v8 v8::ОУ БП2.0 УТ10 Оптовая торговля Абонемент ($m) Печатные формы документов

Счет на оплату с НДС 20% и уведомлением, что НДС изменится с 01.01.2019г.

1 стартмани

12.11.2018    7858    28    Rustig    13       

Элементы внедрения системы адресного хранения на программе "Кортес: Адресный склад" 8

Отчеты и формы Бизнес-аналитик Пользователь Руководитель проекта Внешний отчет (ert,erf) v8 КА1 УУ Учет ТМЦ Абонемент ($m) Управление проектом

С чего начать внедрение адресного хранения склада? Возможно ли проводить безбумажную инвентаризацию? Не понимаете, о чем я спрашиваю? - Объясню по порядку.

1 стартмани

12.11.2018    5957    9    Rustig    40       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 127

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    22044    ids79    40       

Планирование платежей. Прогнозирование прибылей и убытков. Часть 1. 7

Отчеты и формы Бизнес-аналитик Руководитель проекта Архив с данными v8 v8::ОУ УТ10 УУ Финансовый учет и бюджетирование (FRP) Абонемент ($m) Финансовые

Планирование поступлений от клиентов, списаний налогов и оплат поставщикам. И как следствие - прогнозирование прибыли или убытков.

2 стартмани

21.10.2018    5352    1    Rustig    57       

Вспомогательные инструкции в коде 1С 105

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

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    21357    tormozit    100       

Доработки обмена "УТ 10.3 - интернет-магазина Shop-Script" 1

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 УУ Оптовая торговля Розничная торговля Учет ТМЦ Платные (руб) WEB

Доработки типового обмена между УТ 10.3 и интернет-магазином Shop-Script на движке Webasyst: выгрузка нулевого количества товара, номенклатурных групп вместо групп номенклатуры и дополнительного описания номенклатуры.

1500 руб.

07.09.2018    4786    2    0       

Группировка товаров при печати чеков ККМ 2

Отчеты и формы Бухгалтер Внешняя обработка (ert,epf) v8 КА1 УТ10 БУ Кассовые операции Розничная торговля Абонемент ($m) Печатные формы документов ККМ

Товары группируются по своей иерархии товаров. Длина чека ККМ сокращается в разы. Общая сумма чека ККМ и общее количество товаров не изменяется.

2 стартмани

07.09.2018    5341    Rustig    13       

Произвольный код в фоновом режиме 165

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

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

03.09.2018    15452    nikita0832    42       

Рабочий стол кассира 2

Инструменты и обработки Пользователь Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 Кассовые операции Розничная торговля Абонемент ($m) ККМ Рабочее место

Внешняя обработка - рабочий стол кассира (54-ФЗ) - с дополнительным функционалом для УТ 10.3. Тестировалась на ККМ Атол-30ф.

2 стартмани

18.07.2018    7014    14    Rustig    0       

Согласование цен по заказу 5

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Ценообразование, анализ цен Бесплатно (free) Практика программирования Бухгалтерский учет

Согласование цен по заказу покупателя - менеджер указывает цену с признаком "На согласование". Руководитель визирует "Согласовано". Полный контроль над ценами в два клика. Отдел продаж - 20 менеджеров, 1 руководитель.

03.07.2018    6862    Rustig    21       

Повышаем эффективность разработки правил обмена 124

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

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    19929    olegtymko    47       

Введение в механизм представлений в ЗУП ред. 3 155

Статья Программист Нет файла v8 v8::СПР ЗУП3.x Бесплатно (free) Практика программирования

В нашей организации на первом же телефонном собеседовании на должность разработчика по ЗУП ред. 3 вас обязательно спросят о том, что такое "Представления".

04.06.2018    25386    xrrg    82       

Как сделать запрос на изменение данных 75

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Практика программирования

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

01.06.2018    21917    m-rv    21       

Строим графы средствами 1С (без GraphViz) 43

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

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    17736    slozhenikin_com    19       

Распределение расходов пропорционально продажам 9

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Бесплатно (free) Практика программирования

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    11890    Rustig    9       

Загрузка прайса. УТ 10.3 2

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 УУ Ценообразование, анализ цен Абонемент ($m) Ценообразование, прайсы

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

2 стартмани

26.03.2018    7753    6    Rustig    0       

Печать ценников с одной и двумя ценами 55х40, 100х60, 140х200. УТ 10.3 2

Отчеты и формы Бухгалтер Пользователь Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 УУ Розничная торговля Абонемент ($m) Ценники

Печать ценников с одной и двумя ценами специальных размеров под пластиковые подставки для ценников: 55х40, 70х40(Две цены), 90х60(Две цены), 100х60, 140х200 мм.

2 стартмани

26.03.2018    7660    9    Rustig    2