gifts2017

Суммирование выделенных ячеек в столбце для 1С:Предприятие 7.7

Опубликовал Елена Унчикова (электра) в раздел Программирование - Практика программирования

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

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

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

Для работы требуется внешняя компонента AddIn_V7MyClipboard.dll.
Автор: Venger Alex, Odessa, 2008
Url: http://infostart.ru/public/15999/

Инструкция по внедрению для пользователей без навыков программирования:

1. Открыть 1С:Предприятие 7.7 в режиме конфигуратора.

2. Открыть конфигурацию; щелкнув правой кнопкой мыши на верхней строчке, открыть Глобальный модуль.

3. Прокрутить страницу в самый низ до строки:

КонецПроцедуры // ПриНачалеРаботыСистемы()

4. Скопировать приведенный ниже код и вставить его ниже этой строки.

//******************************************************************************
Процедура ПанельМ()
WSHShell = СоздатьОбъект("WScript.Shell");
WSHShell.SendKeys("^c"+ "^с"); 
WSHShell.SendKeys("^+{F12}");
КонецПроцедуры 
Процедура ПанельМплюс() 
ЗагрузитьВнешнююКомпоненту("AddIn_V7MyClipboard.dll");
БуферОбмена = СоздатьОбъект("AddIn.AddIn_V7MyClipboard");
Стр=БуферОбмена.ПолучитьТекстИзБуфераОбмена(1);
Файл = СоздатьОбъект("Текст");
Файл.ДобавитьСтроку(Стр); 
Файл.Записать(КаталогИБ()+"z.txt"); 
Файл.Открыть(КаталогИБ()+"z.txt"); 
Сум=0;
Для ы = 1 По Файл.КоличествоСтрок()-1 Цикл 
С = Файл.ПолучитьСтроку(ы);
С = СтрЗаменить(С,"'",""); 
С = СтрЗаменить(С,Симв(34),""); 
С = СтрЗаменить(С,",",".");
// Ч = Число(С); 
Ч = С;
Сообщить(Ч);
Сум=Сум+Ч;
КонецЦикла; 
Сообщить("Сумма ="); 
Сообщить(Сум); 
Сообщить("****************************"); 
Файл.Очистить(); 
КонецПроцедуры 
//******************************************************************************

5. Открыть вкладку "Конфигурация" - "Интерфейсы".

6. Правой кнопкой щелкнуть на Интерфейсе и выбрать "Редактировать панели инструментов".

7. В окошке "Список панелей" выбрать "Основная", в окошке "Состав панели" шелкнуть "Добавить".

Объект "Задача", Команда "Задача.Выполнить", Подсказка "Сумма выделенных ячеек".

Вкладка "Параметры" Формула:

ПанельМ()

Вкладка "Образ" - Пиктограмма; "ОК"

8. Двойной клик по иконке библиотеки пиктограмм вставляет выбранную иконку на кнопку.

9. В окошке "Список панелей" шелкнуть "Добавить".

Название:

Мплюс

Обязательно снять галку "показывать"!

На этой панели создать кнопку "Задача", вкладка "Параметры" Формула:

ПанельМплюс()

Вкладка "Акселератор" клавиша "F12", галки "Ctrl" и "Shift".

Иконка для кнопки не нужна.

10. Сохранить конфигурацию кнопкой "Сохранить".

11. AddIn_V7MyClipboard.dll поместить в корневой каталог базы 1С.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Summa1C7
.rar 373,51Kb
09.03.16
2
.rar 373,51Kb 2 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей (Che) Коцюра (CheBurator) 09.03.16 22:14
Поймет ли разные разделители?
Нарример
1пробел200,34
Или
2'345-00
электра; +1 Ответить
2. Сергей (Che) Коцюра (CheBurator) 09.03.16 22:17
3. Елена Унчикова (электра) 09.03.16 23:55
Надо добавить
С = СтрЗаменить(С," ","");
С = СтрЗаменить(С,"-",".");
4. Сергей (Che) Коцюра (CheBurator) 10.03.16 00:12
и, самое главнгое. без ВК - никак не обойтись?
средствами виндов получить содержимое буфера?
а то умеян этих ВК уже вагон
5. Елена Унчикова (электра) 10.03.16 07:00
Вариант с ВК FormEx.dll (без FormEx.dll не работает в русской раскладке клавиатуры):

в Глобальном модуле
//******************************************************************************
Процедура ПанельМ()
        WSHShell = СоздатьОбъект("WScript.Shell");
        WSHShell.SendKeys("^c"+ "^с");	  	
	WSHShell.SendKeys("^+{F11}"); 
КонецПроцедуры 
Процедура ПанельМ1()
	Файл = СоздатьОбъект("Текст");
	Файл.Показать(,КаталогИБ()+"z.txt"); 
	WSHShell = СоздатьОбъект("WScript.Shell");
	WSHShell.SendKeys("^v"+ "^м");
	Сервис=СоздатьОбъект("Сервис");
	Сервис.РаскладкаКлавиатуры("English (United States)");
        WSHShell.SendKeys( "^s");	
        Сервис.РаскладкаКлавиатуры("Russian");	
	WSHShell.SendKeys( "^{F4}"); 
	WSHShell.SendKeys("^+{F12}"); 
КонецПроцедуры 
Процедура ПанельМплюс()  
	Файл = СоздатьОбъект("Текст");
	Файл.Открыть(КаталогИБ()+"z.txt");  
	Сум=0;
	Для ы = 1 По Файл.КоличествоСтрок() Цикл    
		С = Файл.ПолучитьСтроку(ы);
		С = СтрЗаменить(С,"'","");      
		С = СтрЗаменить(С,Симв(34),"");  
		С = СтрЗаменить(С,",",".");
	        Сообщить(С);
		Сум=Сум+С;
	КонецЦикла;   	 
        Сообщить("Сумма =");          
	Сообщить(Сум); 
	Сообщить("****************************");   
КонецПроцедуры 
//******************************************************************************
...Показать Скрыть


На скрытой панели "Мплюс" создать вторую скрытую кнопку "Задача", вкладка "Параметры" Формула:
ПанельМ1()

Вкладка "Акселератор" клавиша "F11", галки "Ctrl" и "Shift".

Недостаток этого метода - мелькание окошка на экране.
6. Андрей Зырянов (AndreykO) 11.03.16 06:47
Спасибо. Очень помогло. Всё работает
электра; +1 Ответить
7. bulpi bulpi (bulpi) 18.03.16 14:08
????
Всю жизнь была такая кнопка. В самой платформе 7.7 кнопка с буквой М
Или я чего-то не понял ?
8. Елена Унчикова (электра) 18.03.16 21:50
На основе данной обработки можно написать и более сложные процедуры при желании, добавив кнопки умножения, вычисления среднего и т.д.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа