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

13.03.07

Разработка - Математика и алгоритмы

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

Процедура Сформировать()
    ОткрытьФорму("Документ.ИмяДокумента",ДокКонт);
    Sc = CreateObject("WScript.Shell");
    //добавляем новые строки, пока пустые,
    //к примеру добавим 3 строки
    Стр = "INSERT";//здесь и далее служебные клавиши в фигурных скобках
    Для к = 1 По 5 Цикл
        Стр = Стр + "ENTER";
    КонецЦикла;
    //где "к" - количество реквизитов табличной части доступных для ввода,
    //если реквизит имеет кнопку выбора значения из списка
    //тогда перед "ENTER" надо добавить "ESC", для отмены
    //интерактивного выбора
    Для с = 1 По 3 Цикл
        Sc.SendKeys(Стр);
    КонецЦикла;
    //обязательно пауза
    Форма.ОбработкаОжидания("Заполним",1);
КонецПроцедуры

//заполняем строки документа
Процедура Заполним()
    Попытка
        Если ДокКонт.КоличествоСтрок() = 3 Тогда
            Форма.ОбработкаОжидания("Заполним",0);
            ДокКонт.ВыбратьСтроки();
            Пока ДокКонт.ПолучитьСтроку() = 1 Цикл
                //ну и заполняем пустые строки
            КонецЦикла;
            ДокКонт.Форма.Обновить();
        КонецЕсли;
    Исключение
    КонецПопытки;
КонецПроцедуры

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

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    2748    stopa85    12    

36

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    6705    user1959478    50    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    2684    maksa2005    8    

25

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

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

1 стартмани

09.06.2023    10242    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    3959    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

23.11.2022    3075    gzharkoj    14    

24

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    8889    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Abadonna 3967 21.03.07 18:19 Сейчас в теме
Красиво! Вот только никак не въеду - зачем?
2. defini 464 22.03.07 11:54 Сейчас в теме
Данному вопросу была посвящена предыдущая статья, как я понял, стояла задача: открыть новый документ и заполнить его табличную часть, не записывая документ в базу, и не меняя кода самой конфигурации. А т.к. документ не записан, методы "ЗагрузитьТабличнуюЧасть()" и "НоваяСтрока()" не срабатывают.
3. Abadonna 3967 23.03.07 17:04 Сейчас в теме
Какая задача стояла я понял, не понял я ПОЧЕМУ она ВСТАЛА...
4. defini 464 23.03.07 17:56 Сейчас в теме
:-) Да мало ли, что юзверя у человека захотели...
Меня заинтересовал сам концепт, идея.
5. Abadonna 3967 24.03.07 06:46 Сейчас в теме
Ну вообще-то мой вопрос и не к тебе был, а к автору предыдущего решения ;)
6. O-Planet 6441 04.04.07 06:09 Сейчас в теме
А вот мне скажите что... Ентот WScript.Shell - описан ГЕДЕ?
7. 04.04.07 17:15 Сейчас в теме
Тебе доки нужны? Стучись в 205460258
8. JohnyDeath 302 05.04.07 10:38 Сейчас в теме
To O-Planet: посмотри сюда: http://www.script-coding.info/ .Очень толковый сайт
9. logarifm 1122 24.04.07 17:55 Сейчас в теме
Интересно как оно будет работать на больших базах и в особенности когда много пользхователей, сдесь явно вопрос в оптимизации отвалится! Все реально зависнет!
10. artbear 1562 26.04.07 10:15 Сейчас в теме
А если просто загрузить ВК 1С++ и ФормЕкс, то НоваяСтрока() для нового документа будет отлично работать.
И не нужно никаких извращений :)
ЗЫ этой фичой пользуюсь уже несколько лет, больше трех точно.
11. artbear 1562 26.04.07 10:16 Сейчас в теме
Читать - ВК 1С++ ИЛИ ВК ФормЕКС
12. defini 464 26.04.07 14:23 Сейчас в теме
так задача стояла, без изменения конфы и ВК, вот и прикольнулся.
14. АЛьФ 06.11.08 10:37 Сейчас в теме
2(12) Так "WScript.Shell" - это уже встроенный объект 1С?
Душелов; +1 Ответить
15. defini 464 07.11.08 09:09 Сейчас в теме
(14) Не встроенный, но зачем изобретать велосипед, если можно использовать стандартные вещи?
13. пользователь 06.11.08 10:08
Сообщение было скрыто модератором.
...
16. Ёпрст 1065 07.11.08 09:17 Сейчас в теме
17. defini 464 07.11.08 09:33 Сейчас в теме
Чой-то вы проснулись? Статейка полтора года валялась тихо-мирно..
18. i132 123 20.03.12 15:56 Сейчас в теме
(стоит указать в заголовке что это 7.7)
Добавлять из обработки в еще не записанный документ без внешних компонент и скриптов, штатными средствами можноделать через подбор: Открыть подбор в форме нвого документа, и врентуть таблицу подбора.
например в типовой торговле из формы документа вызвается глОбработкаПодбора(Контекст, ВыбЗнач, 1, 1, 1);, где выбЗнач таблицаЗначений с номенлатурой и количеством + доп реквизиты.

пример кода:

Процедура ВвестиОтменуЗаявок(ТЗ) //+Илья 160806
Перем КОнтПобора;

КОнтекстНовогоДокумента="";
ОткрытьФорму("Документ.ОтменаЗаявок#",КОнтекстНовогоДокумента,);
КОнтекстНовогоДокумента.ОткрытьПодбор("Обработка.ПустаяФорма",, КонтПобора,1);
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
КонтПобора.Форма.ВыполнитьВыбор(Тз.Заявка);
КонецЦикла;
КонтПобора.Форма.Закрыть();

КонецПроцедуры

примечание: Обработка Пустаяформа все-таки мелькает, чтобы код работал на ней должен быть хотябы один элемент, например кнопка "ОК", модуль формы может быть пустым.
Оставьте свое сообщение