Редактирование данных прямо в отчете СКД (как в Excel). Теперь с пересчетом итогов!

08.09.17

Разработка - СКД

Вам не подходит обычная форма ввода данных Клиент хочет прямо в отчете изменять цифры Тогда этот шаблон поможет вам быстро добавить в ваш отчет СКД механизм редактирования данных

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Шаблон конфигурации с отчетом
.dt 36,16Kb
641 3 000 руб. Купить
Видео презентация механизма редактирования ячеек СКД
.mp4 15,79Mb
78 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Предлагаю вашему вниманию механизм (почти универсальный) по редактированию данных в ячейках СКД

Во вложении конфигурация с демо данными  и отчетом "Планирование затрат"

Я смоделировал пример - необходимо планировать затраты по подразделениям

Все описание работы механизма в видеопрезентации. Теперь работает пересчет итогов по группировкам!

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    248397    1374    421    

1134

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    5444    297    shapa_pro    25    

66

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    16579    ovetgana    112    

106

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Описан способ заполнения списка доступных значений для полей наборов данных и параметров в схеме компоновки данных для любых конфигураций (с использованием БСП или без).

01.07.2025    9561    krasnoshchekovpavel    5    

67

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    8815    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    15788    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

СКД – инструмент, на базе которого в современных конфигурациях реализованы практически все отчеты. СКД используется в динамических списках, печатных формах и универсальных механизмах. Если построить простейший отчет может каждый разработчик, то с нюансами знакомы далеко не все. Расскажем о неочевидных на первый взгляд приемах, способных значительно повысить качество отчетов.

24.12.2024    13374    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

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

20.08.2024    9895    AlexeyPROSTO_1C    1    

32
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. KonstB 182 21.11.12 15:36 Сейчас в теме
Т.е. Итоги сами пересчитываются?
3. Visitizer 202 21.11.12 18:30 Сейчас в теме
(1) KonstB, если отчет небольшой, то после каждого внесения данных можно вызвать повторное формирование отчета
2. Visitizer 202 21.11.12 16:23 Сейчас в теме
Нет, итоги сейчас не пересчитываются автоматом
только при повторном обновлении отчета после внесения данных
4. GEsbyt 2 22.11.12 09:27 Сейчас в теме
Еще можно обойтись без регистров:

СохранитьЗначение("Значение и Номер Ячейки и Имя Пользователя и Вариант отчета", ТабличаЗначенийОтчета);
ТабличаЗначенийОтчета = ВосстановитьЗначение("Значение и Номер Ячейки и Имя Пользователя и Вариант отчета");

Обрабатывать Таблицу Значений Отчета, а при окончании расшифровки заменять значения ячейк в отчете.
8. Visitizer 202 22.11.12 11:39 Сейчас в теме
(4) Николай, Можно и без регистра - можно и в таблицу и в массив, и куда угодно - это же пример
5. chemezov 50 22.11.12 09:39 Сейчас в теме
всмысле как макет чтоли?
6. kiros 52 22.11.12 10:28 Сейчас в теме
За идею "+", но универсальность здесь, именно идеи, применение на практике геморно, но идея очень интересна.
7. Visitizer 202 22.11.12 11:38 Сейчас в теме
(6) kiros, Не согласен - вполне универсально
я применил к разным задачам
копи пасте и замена имен переменных
на то он и шаблон
9. Yury1001 1477 22.11.12 17:29 Сейчас в теме
10. gaglo 23.11.12 09:42 Сейчас в теме
Все описание работы механизма в видеопрезентации

Однако сижу на работе, не могу открыть видео... Хоть бы пояснение в пару фраз могли бы в статье и поместить. А то "редактирование как в Excel" - слишком расплывчато. Могу только строить домыслы. Например:
"Имеется отчет, построенный по регистру. К нему предлагается механизм, позволяющий набрать прямо в ячейках новые значения реквизитов, а затем сохранить их в записи регистра."
Ну вот насколько я угадал?
ArthurSufiyarov; damacon; +2 1 Ответить
11. Visitizer 202 23.11.12 11:18 Сейчас в теме
(10) gaglo, А вот мне чтобы мануал написать - так надо было бы в 3 раза больше времени потратить, а так - дома посмотришь :)
12. RustIG 1944 23.11.12 20:44 Сейчас в теме
Супер! Интересно как реализованы регламентированные отчеты в бухгалтерии 2.0? Ведь в них тоже можно редактировать данные в ячейках.
13. адуырщдв 28 24.11.12 23:13 Сейчас в теме
Хорошая идея однозначно +
14. eugen91 25.11.12 01:31 Сейчас в теме
Хорошая разработка) Респект
15. tehas 46 26.11.12 09:53 Сейчас в теме
довольно интересно
16. p1l1gr1m 26.11.12 22:31 Сейчас в теме
Хорошая идея, стоит отметить как ужасно неудобно реализован в скд механизм расшифровок и сколько действий нужно совершить чтобы сделать банальны вещи.
17. KroVladS 35 28.11.12 09:16 Сейчас в теме
Плюс за идею.

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

Хотелось бы всё таки чтобы менялись итоги без переформирования отчёта.
19. Visitizer 202 04.12.12 14:59 Сейчас в теме
(17) KV1s,
Использовал несколько иной механизм, в расшифровку засовывал открытие формы для редактирования (выбор из списка и комментарий) из которой и вносил изменения в регистр по которому строился отчёт, после записи отчёт переформировывал.

Хотелось бы всё таки чтобы менялись итоги без переформирования отчёта.

Эта задача совсем другого порядка - ее можно решить, но это уже другие трудозатраты
18. svcoopers 95 28.11.12 13:23 Сейчас в теме
Интересная программа!
20. Visitizer 202 07.12.12 12:48 Сейчас в теме
ГОСПОДА, Теперь работает пересчет итогов!
Правда не совсем мега супер универсально, но в 90% случаях подойдет
В модуле формы добавил рекурсивную процедуру ПересчетИтоговВТаблице
valarrus1234; BoBaH; Dmitrii D; KroVladS; Odinas; +5 Ответить
21. ef42 13.12.12 20:56 Сейчас в теме
Спасибо - просто отличная вещь. Сейчас глядя на свое решение даже немного стыдно :-( Воспользуюсь вашей идеей, чтобы переписать свой код.
22. Sasha255n 18.12.12 14:03 Сейчас в теме
Да от себя должен отметить что и идея достаточно свежая и оригинальая От меня атору большое спасибо
23. krein 64 12.01.13 19:58 Сейчас в теме
Идея не новая, но реализация гораздо лучше, чем у меня получилось сделать в свое время
Чаще всего используется для планирования и тут же оперативного просмотра, что и видно на скриншотах
24. KroVladS 35 12.02.13 19:29 Сейчас в теме
Попробовал на реальной задаче 20 столбцов, 500+ строк(с группировками) после формирования отчёта ТЧ для расчёта итогов заполняется 4 минуты, сам отчёт формируется 10 сек.
надо оптимизировать.
26. Visitizer 202 12.02.13 19:33 Сейчас в теме
это жесть - зачем такой большой файл, что же вы будете там смотреть 500 * 20 = 10 тыс. ячеек(24) KV1s,
и что - будут редактировать 10 тыс. ячеек?
я вообще не понимаю зачем пользовователям такие большие простыни
27. KroVladS 35 12.02.13 19:55 Сейчас в теме
(26)
в данный момент их заполняют в экселе, хотели перенести в 1с чтобы у пользователя интерфейс был похож на эксель.
Заполняется не каждая ячейка (в строках номенклатура), но отображаться должны все.
25. KroVladS 35 12.02.13 19:32 Сейчас в теме
90% времени зависает вот тут:
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));	
РезультатРасшифровки = ОбработкаРасшифровки.Расшифровать(Расшифровка, новый полеКомпоновкиДанных(ПолеРасшифровки));
38. Dmitrii D 73 14.05.14 11:22 Сейчас в теме
(25) KV1s, да согласен, а если данных еще больше, то по часу заполняется идеи по оптимизации, есть какие-нибудь?
39. Dmitrii D 73 14.05.14 11:35 Сейчас в теме
(38) DmitriyDI,
Функция ПолучитьЗначенияГруппировокОтчета(знач ДанныеРасшифровки, Расшифровка, ПолеРасшифровки, ЗначенияГруппировок,ОбработкаРасшифровки)
	
	//ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
	
	РезультатРасшифровки = ОбработкаРасшифровки.Расшифровать(Расшифровка, новый полеКомпоновкиДанных(ПолеРасшифровки));
	
	для каждого текСтрокаОтбора из РезультатРасшифровки.Отбор.Элементы цикл
		для каждого текГруппировка из ЗначенияГруппировок цикл
			если текСтрокаОтбора.ЛевоеЗначение = новый ПолеКомпоновкиДанных(текГруппировка.Ключ) и текСтрокаОтбора.Использование=Истина Тогда
				ЗначенияГруппировок[текГруппировка.Ключ] = текСтрокаОтбора.ПравоеЗначение;
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
	
	Возврат ЗначенияГруппировок;
КонецФункции
Показать

Сделал так отчет стал работать в разы быстрее, т.е. не создавать каждый раз обработку расшифровки а передавать 1 раз!
28. avtomatchik 31.05.13 01:52 Сейчас в теме
а как редактировать в обычных формах, неуправляемых? не пересчитываются итоги(
29. avtomatchik 31.05.13 03:21 Сейчас в теме
разобрался, спасибо за отчет= )
30. nano1c 174 21.08.13 10:40 Сейчас в теме
Господа, а почему у меня в веб-клиенте редактируемое поле смещено? А в тонком - все нормально!
31. Odinas 11.10.13 15:36 Сейчас в теме
Отличная идея, для моей ситуации экономит массу времени и сил! Спасибо за разработку, как будут стартмани, обязательно скачаю.
32. Odinas 16.10.13 16:13 Сейчас в теме
Наконец скачал отчет, появился небольшой вопрос.
В своем отчете не использую группировки, возможно ли как то "отловить" содержимое ячейки, относительно выделенной изменяемой области? (Вместо статей затрат у меня колонка с номенклатурой, в конечном итоге в регистр сведений нужно писать Номенклатуру+ Значение выделенной ячейки)
33. Odinas 17.10.13 12:04 Сейчас в теме
Все, разобрался, еще раз спасибо за разработку.
34. lelusha 06.02.14 22:13 Сейчас в теме
Хорошая идея, экономит кучу времени. но доработка очевидна нужна.
Спасибо разработчику.
35. Dmitrii D 73 12.05.14 14:46 Сейчас в теме
идея класс!!! пошел разбираться)!

Спасибо Вам большое замечательный отчет.
36. Dmitrii D 73 13.05.14 15:27 Сейчас в теме
Один вопрос, пытаюсь сделать, чтобы при редактировании ячейки пересчитывались значения в соседнем столбце по формуле РедактируемаяЯчейка*СоседнююЯчейку, что-то не могу понять как это сделать пытаюсь смещать тут


ЭлементыФормы.Результат.Область(текСтрокаСвязи.Ряд, текСтрокаСвязи.Колонка+1, текСтрокаСвязи.Ряд, текСтрокаСвязи.Колонка+1), 


но не получается, пишет что значение недоступно для чтения.

Есть какие-нибудь идеи как это реализовать?
37. Dmitrii D 73 13.05.14 16:59 Сейчас в теме
(36) DmitriyDI, вроде получилось сделать!
40. Dmitrii D 73 14.05.14 11:41 Сейчас в теме
Теперь 70% времени тут
	ПолеКомпоновки = новый полеКомпоновкиДанных(ПолеРасшифровки);
	РезультатРасшифровки = ОбработкаРасшифровки.Расшифровать(Расшифровка, ПолеКомпоновки);

Надо подумать как тут оптимизировать.
41. Dmitrii D 73 15.05.14 10:16 Сейчас в теме
(40) DmitriyDI, и еще:
ЗначенияГруппировок = ПолучитьЗначенияГруппировокОтчета(ДанныеРасшифровки, ТекущаяОбласть.Расшифровка, "СуммаПлан", Новый Структура("Сотрудник, Контрагент, ТорговаяМарка"),ОбработкаРасшифровки);

надо внести в это если:
Если ЗначенияРасшифровки.Свойство("СуммаПланСКР") Тогда

Тогда и расшифровки норм останутся все и побыстрее еще будет работать!
42. kentavr27 97 01.07.14 10:48 Сейчас в теме
(40) DmitriyDI, Что бы еще ускорится, нужно немного изменить порядок обхода. Сначала обходить колонки, внутри -- строки (а не наоборот). И кроме того
ЗначенияГруппировок = ПолучитьЗначенияГруппировокОтчета()
можно перенести во внутренний цикл. Тем самым те колонки, которые для редактирования не интересны, не будут прогоняться, соответственно времени на прогонку затрачено будет в 2 или >2 раз меньше
Для кол = ДокументРезультат.ФиксацияСлева+1 по ДокументРезультат.ШиринаТаблицы цикл
		Для ряд = ДокументРезультат.ФиксацияСверху+1 по ДокументРезультат.ВысотаТаблицы цикл
			ТекущаяОбласть = ДокументРезультат.Область(ряд, кол, ряд, кол);
			если ТекущаяОбласть.Расшифровка = Неопределено Тогда Продолжить; КонецЕсли;
			
			ЗначенияРасшифровки = ПолучитьВсеЗначенияРасшифровки(ДанныеРасшифровки.Элементы[ТекущаяОбласть.Расшифровка]);
			Если ЗначенияРасшифровки.Свойство("КолонкаДляРедактирования") Тогда
				ТекущаяОбласть.Защита=ложь;
				ЗначенияГруппировок = ПолучитьЗначенияГруппировокОтчета(ДанныеРасшифровки, ТекущаяОбласть.Расшифровка, "КолонкаДляРедактирования", Новый Структура("Товар, Клиент"),ОбработкаРасшифровки);
				.
				.
				.
			Иначе
				// !Добавить прерывание цикла для неинтересных колонок
				Прервать;
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
Показать
Dmitryflagman; Dmitrii D; Sean1s; +3 Ответить
43. Baibolaika 14.11.14 12:50 Сейчас в теме
Visitizer, добрый день! Скажите, пожалуйста, существует ли версия для НЕ управляемых форм?
Пытаюсь подстроить, не могу понять как формируется значение реквизита ДанныеРасшифровки?
44. kanat1 29 05.10.16 09:07 Сейчас в теме
Спасибо. Очень пригодилось
45. Stalker27 37 21.10.16 10:08 Сейчас в теме
Скачал, взял часть функционала для своей задачи (для начала просто нужно редактировать ячейки в табдоке). Получилось около 20 минут на выполнение (при количестве минимальных колонок для моей задачи около 20шт. и около 400 строк. Это данные просто для тестовой проверки. В реальности таблица получается намного больше (около 200-300 колонок и намного большего числа строк).
В общем очень очень очень тормознутый метод для больших объемов информации. У меня мой метод работал мгновенно, но там были некие проблемы другого плана, поэтому подумал что ваша обработина мне поможет. Не помогла.
Но некоторые методы пригодятся в доработке моего решения (хотя уже было принято решение делать обработкой, а не отчетом). В общем нафига потратил стартмани - непонятно 0_о
Ну надо же их куда-то тратить, а то лежат и лежат уже года 2-3))
46. lopatin 693 04.06.17 11:02 Сейчас в теме
Получится прикрутить такое решение, если это не отчет, а форма документа и табличную часть надо вывести через СКД Табличный документ? Программный вывод СКД в табличный документ будет в другом модуле выполняться, не в форме документа.
47. Visitizer 202 04.06.17 17:34 Сейчас в теме
(46) Да какая разница, куда СКД прикручивать - табличный документ и логика заполнения и обработки вся на программном уровне
48. HAMMER_59 256 14.09.17 15:57 Сейчас в теме
Михаил, насколько я понял Вы сначала выводить с помощью СКД результат в табличный документ. А затем перебираете все ячейки, и устанавливаете в нужном месте свойства "защита" и "содержит данные".
Я пытался сразу в макете указать данные свойства, но именно эти свойства не перенеслись в полученный табличный документ.
Может все-таки как-то можно решить задачу через макет, и не перебирать все ячейки?
49. Visitizer 202 15.09.17 09:53 Сейчас в теме
(48) Как же давно это было - я уже и 1с не занимаюсь )
но насколько я помню - на макет весь ставится защита редактирования, а программно подствечиваются и открываются ячейки для редактирования
50. HAMMER_59 256 15.09.17 14:06 Сейчас в теме
(49) На текущий момент я пришел к тому же выводы, что других вариантов кроме как программно снять защиту с ячейки нет.
51. leobrn 711 29.05.19 12:32 Сейчас в теме
заметил, что когда делаешь отбор в нижних итогах пересчета нет
52. пользователь 13.08.19 10:08
Сообщение было скрыто модератором.
...
53. robix 10.09.20 07:59 Сейчас в теме
Спасибо за примерчик. Все работает, изи.
54. VanoZZZ 25.08.23 09:36 Сейчас в теме
ПолучитьИзВременногоХранилища(ДанныеРасшифровки)
ДанныеРасшифровки - это реквизит формы
Где и в какой момент он заполняется?
55. Kontakt 109 17.01.24 11:59 Сейчас в теме
Что т изменилось за 11 лет?
56. Visitizer 202 17.01.24 15:18 Сейчас в теме
(55) За 11 лет много изменилось
я уже 10 лет 1С-м не занимаюсь )
57. Kontakt 109 18.01.24 13:42 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация