Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,813
Записей в блоге: 17
1C 8.x

Разбивка строк в ТЧ документа по периодам

25.01.2025, 13:47. Показов 4043. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, коллеги.

Имеется такая задача:
Грaница периода действия для регистрa расчетa с периодом действия не может пересекать границу периода регистра. В этом случае нужно автоматически раздробить введенную оператором строку табличной части с таким расчетом, чтобы в каждой строке период действия укладывался в период регистра. Например, пользователь ввел период действия с 20 июня по 10 июля - в этом случае строку табличной части нужно разбить на две: 1) с 20 июня по 30 июня и 2) с 1 июля по 10 июля, с тем же видом расчета.
Собственно, нацарапал такой код в модуле объекта документа

Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   РасчетЗарплатыОсновныеНачисления.Ссылка.ПериодРегистрации КАК ПериодРегистрации,
        |   РасчетЗарплатыОсновныеНачисления.Сотрудник КАК Сотрудник,
        |   РасчетЗарплатыОсновныеНачисления.Должность КАК Должность,
        |   РасчетЗарплатыОсновныеНачисления.ВидРасчета КАК ВидРасчета,
        |   РасчетЗарплатыОсновныеНачисления.ПериодДействияНачало КАК ПериодДействияНачало,
        |   КОНЕЦПЕРИОДА(РасчетЗарплатыОсновныеНачисления.ПериодДействияКонец, ДЕНЬ) КАК ПериодДействияКонец,
        |   РасчетЗарплатыОсновныеНачисления.БазовыйПериодНачало КАК БазовыйПериодНачало,
        |   ВЫБОР
        |       КОГДА РасчетЗарплатыОсновныеНачисления.БазовыйПериодКонец = ДАТАВРЕМЯ(1, 1, 1)
        |           ТОГДА ДАТАВРЕМЯ(1, 1, 1)
        |       ИНАЧЕ КОНЕЦПЕРИОДА(РасчетЗарплатыОсновныеНачисления.БазовыйПериодКонец, ДЕНЬ)
        |   КОНЕЦ КАК БазовыйПериодКонец,
        |   РасчетЗарплатыОсновныеНачисления.Размер КАК Размер,
        |   РасчетЗарплатыОсновныеНачисления.ГрафикРаботы КАК ГрафикРаботы,
        |   РасчетЗарплатыОсновныеНачисления.Сторно КАК Сторно,
        |   РАЗНОСТЬДАТ(РасчетЗарплатыОсновныеНачисления.ПериодДействияНачало, КОНЕЦПЕРИОДА(РасчетЗарплатыОсновныеНачисления.ПериодДействияКонец, ДЕНЬ), МЕСЯЦ) КАК ПереходМесяц
        |ИЗ
        |   Документ.РасчетЗарплаты.ОсновныеНачисления КАК РасчетЗарплатыОсновныеНачисления
        |ГДЕ
        |   РасчетЗарплатыОсновныеНачисления.Ссылка = &Ссылка
        |
        |УПОРЯДОЧИТЬ ПО
        |   РасчетЗарплатыОсновныеНачисления.НомерСтроки";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() Цикл 
        Если Выборка.ПереходМесяц > 0 Тогда
            Для НомерИтерации = 0 По Выборка.ПереходМесяц Цикл
                МесяцНачало = ДобавитьМесяц(НачалоМесяца(Выборка.ПериодДействияНачало), НомерИтерации);
                МесяцКонец = КонецМесяца(МесяцНачало);  
                Движение = Движения.ОсновныеНачисления.Добавить();
                ЗаполнитьЗначенияСвойств(Движение, Выборка); 
                Движение.ПериодДействияНачало = Макс(МесяцНачало, Выборка.ПериодДействияНачало);
                Движение.ПериодДействияКонец = Мин(МесяцКонец, Выборка.ПериодДействияКонец);
            КонецЦикла;
        Иначе
                Движение = Движения.ОсновныеНачисления.Добавить();
                ЗаполнитьЗначенияСвойств(Движение, Выборка);
        КонецЕсли;
    КонецЦикла;

Данные в регистр попадают, будучи разбитые на периоды.
Но согласно условиям задачи надо "разбивать" запись в табличной части документа.
Подскажите, в каком направлении двигаться для решения задачи?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2025, 13:47
Ответы с готовыми решениями:

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

Постраничная разбивка документа Word. Сохранение под разными именами.(данные из документа)
ТЗ: Сделать так чтобы данные из Excel перетягивались в Word, При этом файл ворд разбивался на 5 файлов и сохранялся под 5 именами. ...

Разбивка документа по номерному списку
Нужен макрос для word который делал бы следующее: Есть пронумерованный Текст, например: 1. Привет как дела?.............еще текст. ...

40
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
25.01.2025, 16:30
после того, как пользователь уходит со строки ТЧ - наверно чтото типа "окончаниередактирования" - смотреть на дату начала и дату окончания
на их месяцы.
если они разные - то делить на части
15-31
1-30
1-9
и изменить строку, которую он ввёл, и заполнить ещё две.
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,813
Записей в блоге: 17
25.01.2025, 18:45  [ТС]
Yulunga, выглядит красиво, но недостаточно наглядно. Можете привести практический пример?
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
25.01.2025, 19:13
а зачем вообще в документе строки тч раздваивать? достаточно того что в они в регистре раздвоены. и если все как положено то и последующие отчеты будут с регистра. а документ есть документ и останется в первозданном виде. а если уж приспичило раздваивать, то делать это одновременно с записью в регистр, например в событии передзаписью. а при выходе со строки тч хреновао, я потом передумал, решил период поменять, а у меня куча проблем
0
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,813
Записей в блоге: 17
25.01.2025, 19:33  [ТС]
Цитата Сообщение от Аватар Посмотреть сообщение
а зачем вообще в документе строки тч раздваивать?
Таковы условия задачи.
Цитата Сообщение от Аватар Посмотреть сообщение
например в событии передзаписью
В этом же модуле объекта есть запись для "Сторно", в которую добавляется табличная часть:

Кликните здесь для просмотра всего текста
1C
1
2
3
4
ТаблицаСторноЗаписей = НаборОсновные.ПолучитьДополнение();
    Для каждого СтрокаСторно Из ТаблицаСторноЗаписей Цикл
    ДобавитьСтрокуСторно(НаборОсновные, СтрокаСторно, ОсновныеНачисления);
    КонецЦикла;
Процедура ДобавитьСтрокуСторно(НаборЗаписей, СтрокаСторно, ТабличнаяЧасть)
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Добавление набора записей 
    ЗаписьРегистра = НаборЗаписей.Добавить();
    ЗаписьРегистра.ПериодРегистрации = СтрокаСторно.ПериодРегистрацииСторно;
    ЗаписьРегистра.ПериодДействияНачало = СтрокаСторно.ПериодДействияНачалоСторно;
    ЗаписьРегистра.ПериодДействияКонец = СтрокаСторно.ПериодДействияКонецСторно;
    ЗаписьРегистра.БазовыйПериодНачало = СтрокаСторно.БазовыйПериодНачало;
    ЗаписьРегистра.БазовыйПериодКонец = СтрокаСторно.БазовыйПериодКонец;
    ЗаписьРегистра.ВидРасчета = СтрокаСторно.ВидРасчета;
    ЗаписьРегистра.Сторно = Истина;
    ЗаписьРегистра.Сотрудник = СтрокаСторно.Сотрудник;
    ЗаписьРегистра.Должность = СтрокаСторно.Должность;
    ЗаписьРегистра.Размер = СтрокаСторно.Размер;
    ЗаписьРегистра.ГрафикРаботы = СтрокаСторно.ГрафикРаботы;
    
    // Добавление строки в табличную часть
    СтрокаТЧ = ТабличнаяЧасть.Добавить();
    СтрокаТЧ.ПериодДействияНачало = СтрокаСторно.ПериодДействияНачалоСторно;
    СтрокаТЧ.ПериодДействияКонец = СтрокаСторно.ПериодДействияКонецСторно;
    СтрокаТЧ.БазовыйПериодНачало = СтрокаСторно.БазовыйПериодНачало;
    СтрокаТЧ.БазовыйПериодКонец = СтрокаСторно.БазовыйПериодКонец;
    СтрокаТЧ.ВидРасчета = СтрокаСторно.ВидРасчета;
    СтрокаТЧ.Сторно = Истина;
    СтрокаТЧ.Сотрудник = СтрокаСторно.Сотрудник;
    СтрокаТЧ.Должность = СтрокаСторно.Должность;
    СтрокаТЧ.Размер = СтрокаСторно.Размер;
    СтрокаТЧ.ГрафикРаботы = СтрокаСторно.ГрафикРаботы;


Может нечто подобное применимо в качестве решения задачи по сабжу?
0
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
25.01.2025, 19:36
ну тк я именно это и написал - добавляешь строку. или 2. или 3. заполняешь каждую так, как надо.
просто в лоб решаешь.
в приведённом примере добавляется в конце.
также можно.
кнопку на форме "разделить по месяцам". нажал - оно разделилось
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
25.01.2025, 19:37
Цитата Сообщение от Maks Посмотреть сообщение
Таковы условия задачи
хреновое условие, условиедатель не понимает, посему как сделать хрень подсказывать не буду )
0
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,813
Записей в блоге: 17
25.01.2025, 19:38  [ТС]
Цитата Сообщение от Аватар Посмотреть сообщение
посему как сделать хрень подсказывать не буду
Это условие задачи из учебного материала.
0
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
25.01.2025, 20:01
Цитата Сообщение от Maks Посмотреть сообщение
Можете привести практический пример?
нет не могу. так как что за тч - непонятно
зачем был приведён запрос в первом посте - непонятно
поэтому даю общие какие-то советы. как бы я подходил к решению такого недоумения.
так как там копейки ещё разъедутся, наверно. надо за ними следить. ужасы в общем
0
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,813
Записей в блоге: 17
25.01.2025, 20:09  [ТС]
Цитата Сообщение от Yulunga Посмотреть сообщение
так как что за тч - непонятно
Название: Снимок.JPG
Просмотров: 127

Размер: 11.6 Кб

Собственно, это можно увидеть в сообщении №5.
Цитата Сообщение от Yulunga Посмотреть сообщение
зачем был приведён запрос в первом посте - непонятно
Ну как минимум для выборки данных, разве этого не видно?
Цитата Сообщение от Yulunga Посмотреть сообщение
поэтому даю общие какие-то советы. как бы я подходил к решению такого недоумения.
В виде кода можете привести пример? Я так много чего сказать могу (абстрактно).
0
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
25.01.2025, 21:42
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
процедура основныеначисленияприокончанииредактирования(...)
 
текущаястрока = както получить строку, которую ввели
если месяцгода(текущаястрока.периоддействияначало) <> месяцгода(текущаястрока.периоддействияокончание) тогда
изменитьдобавитьстроку(товары, текущаястрока);
конецесли
 
конецпроцедуры
 
процедура изменитьдобавитьстроку(тч, текущаястрока)
конецпериодадействия = текущаястрока.периодействияокончание;
текущаястрока.периодействияокончание = конецмесяца(текущаястрока.периоддействияначало)
размер = рассчитатьразмер(текущаястрока.периоддействияначало, текущаястрока.периодействияокончание) // функция 
запросом
новая = тч.добавить()
новая.... // заполняем реквизиты с начала следующего месяца
если месяцгода(новая.периоддействияначало) <> месяцгода(новая.периоддействияокончание) тогда
изменитьдобавитьстроку(товары, новая);
конецесли
конецпроцедуры
Добавлено через 50 секунд
засада может быть только в строке конецпериодадействия = текущаястрока.периодействияокончание;
если по идентификатору оно присвоит то перепридумывать. если по значению то работает
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,813
Записей в блоге: 17
25.01.2025, 23:03  [ТС]
Yulunga, нашел почти похожую обработку на стороннем форуме, по сути, необходимо добавить цикл обхода табличной части документа и затолкать туда данные из регистра касательно редактируемой записи:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Пока Выборка.Следующий() Цикл 
        Если Выборка.ПереходМесяц > 0 Тогда
            Для НомерИтерации = 0 По Выборка.ПереходМесяц Цикл
                МесяцНачало = ДобавитьМесяц(НачалоМесяца(Выборка.ПериодДействияНачало), НомерИтерации);
                МесяцКонец = КонецМесяца(МесяцНачало);  
                Движение = Движения.ОсновныеНачисления.Добавить();
                ЗаполнитьЗначенияСвойств(Движение, Выборка); 
                Движение.ПериодДействияНачало = Макс(МесяцНачало, Выборка.ПериодДействияНачало);
                Движение.ПериодДействияКонец = Мин(МесяцКонец, Выборка.ПериодДействияКонец);
                // =======================================
                Для каждого ТекСтрокаОсновныеНачисления Из ОсновныеНачисления Цикл
                    // Код для разделения строк табличной части
                КонецЦикла;
                // =======================================
            КонецЦикла;
        Иначе
                Движение = Движения.ОсновныеНачисления.Добавить();
                ЗаполнитьЗначенияСвойств(Движение, Выборка);
        КонецЕсли;
    КонецЦикла;
Собственно, на этом и подвис немного. Если Вы понимаете о чем речь, прошу подсказать, сам пока не догоняю.
0
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
26.01.2025, 22:41
Цитата Сообщение от Yulunga Посмотреть сообщение
процедура основныеначисленияприокончанииредактиров ания(...)
вот название процедуры.
приложил скрин, как её получить. только так. если просто написать в модуле формы - то оно не приконнектится. надо будет руками указывать. в общем лучше здесь на лупу нажать

1C
1
2
3
4
&НаКлиенте
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
    // Вставить содержимое обработчика.
КонецПроцедуры
создалась вот такая шляпа. тут ставишь остановку. смотришь, что такое элемент, что такое новаястрока (я не знаю. но делал бы так)
и на основании этого уже решаешь, что делать с этим.

наверно метод удаления этой строки и добавления 2-3 новых при условии, что месяц конца больше месяца начала - ПЛОХОЙ.
наверно лучше отредактировать эту - вполне возможно, что, если вставить дату окончания конец месяца , то оно само там как-то рассчитается. проверить.
и добавить новую.

можно хитро решить - сказать, что месяц может быть больше только на один
и рассмотреть только этот вариант. то есть без всяких рекурсий запутывающих просто добавить одну строку
новая = тч.новая()
новая.датаначала = началомесяца(...)
....
рассчитать там результат
наверно либо он сам рассчитывается. но наверно нет - тогда
1C
1
2
3
4
5
&насервере
функция рассчитатьрезультатстрокитчтакойто(параметр1, ....N)
результат = ...
возврат результат
конецфункции
если спросят - а что если у нас даты с 15.01 по 25.05 -
ну штош
тогда сказать что она добавит вторую строку. а если вам надо - надо закончить редактировать вторую, тогда опять сработает моя процедура и появится третья. и так до посинения
Миниатюры
Разбивка строк в ТЧ документа по периодам  
1
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
26.01.2025, 22:49
п.с. если нет строки - можно получить через текущиеданные в процедуре на клиенте которая
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,813
Записей в блоге: 17
27.01.2025, 20:28  [ТС]
Yulunga, сделал, как Вы сказали, накидал такой код:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Процедура ОсновныеНачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
    // Получаем табличную часть
    Таблица = Объект.ОсновныеНачисления;
    ТекДата = Объект.Дата;
 
        // Проходим по всем строкам табличной части
    Для Каждого Строка Из Таблица Цикл
        // Получаем начальную и конечную даты
        ПериодНачало = Строка.ПериодДействияНачало;
        ПериодКонец = Строка.ПериодДействияКонец;
 
        // Находим конец текущего месяца
        КонецТекущегоМесяца = КонецМесяца(ТекДата);
 
        // Проверяем условие
        Если ПериодКонец > КонецТекущегоМесяца Тогда
            // Обновляем текущую строку
            Строка.ПериодДействияКонец = КонецТекущегоМесяца;
 
            // Добавляем новую строку
            НоваяСтрока = Таблица.Добавить();
            НоваяСтрока.ПериодДействияНачало = КонецТекущегоМесяца + 1;
            НоваяСтрока.ПериодДействияКонец = ПериодКонец; 
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
Но что-то не срабатывает разделение.
(ЧЯДНТ) Где я ошибся?
0
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
27.01.2025, 22:19
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
&НаКлиенте
Процедура ТЧПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
    
    Если НоваяСтрока Тогда
        ТекДан = Элемент.ТекущиеДанные;
        Если Месяц(ТекДан.ДатаОкончания) > Месяц(ТекДан.ДатаНачала) Тогда
            ВведенныйТовар = ТекДан.Товар;
            ВведеннаяДатаНачала = ТекДан.ДатаНачала;
            ВведеннаяДатаОкончания = ТекДан.ДатаОкончания;
            Объект.ТЧ.Удалить(Объект.ТЧ.Количество() - 1);
            НоваяСтрокаТЧ = Объект.ТЧ.Добавить();
            НоваяСтрокаТЧ.Товар = ВведенныйТовар;
            НоваяСтрокаТЧ.ДатаНачала = ВведеннаяДатаНачала;
            НоваяСтрокаТЧ.ДатаОкончания = КонецМесяца(ВведеннаяДатаНачала);
            
            НоваяСтрокаТЧ = Объект.ТЧ.Добавить();
            НоваяСтрокаТЧ.Товар = ВведенныйТовар;
            НоваяСтрокаТЧ.ДатаНачала = НачалоМесяца(ДобавитьМесяц(ВведеннаяДатаНачала, 1));
            НоваяСтрокаТЧ.ДатаОкончания = ВведеннаяДатаОкончания;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры
хз, всё работает
Миниатюры
Разбивка строк в ТЧ документа по периодам  
1
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
27.01.2025, 22:21
с допущением, что +1 месяц. не +2 +3 и т.д.
но тут думаю главное принцип

Добавлено через 57 секунд
п.с. всё ровно то, что я говорил...
0
5088 / 1705 / 621
Регистрация: 16.01.2015
Сообщений: 7,172
28.01.2025, 00:27
Maks, Если я правильно понял задачу, то заполнить ТЧ в документе а потом по кнопке или перед записью примерно так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 ТаблицаСтарая = Объект.ОсновныеНачисления.Выгрузить(); 
 Объект.ОсновныеНачисления.Очистить();
 ТаблицаНовая = Объект.ОсновныеНачисления //Делаем пустую ТЗ с теми же колонками
 Для каждого Стр Из ТаблицаСтарая Цикл  
 НовСтр   = ТаблицаНовая.Добавить(); 
 Если Стр.ПериодДействияКонец < КонецМесяца(Стр.ПериодДействияНачало) Тогда
 ЗаполнитьЗначенияСвойств(НовСтр,Стр);
 ИначеЕсли Стр.ПериодДействияКонец > КонецМесяца(Стр.ПериодДействияНачало) Тогда
 ЗаполнитьЗначенияСвойств(НовСтр,Стр);
 НовСтр.ПериодДействияКонец = КонецМесяца(Стр.ПериодДействияНачало);
 ДопНовСтр = ТаблицаНовая.Добавить();
 ЗаполнитьЗначенияСвойств(ДопНовСтр,Стр);
 ДопНовСтр.ПериодДействияНачало = НовСтр.ПериодДействияКонец + 1;
 ДопНовСтр.ПериодДействияКонец = Стр.ПериодДействияКонец;
Иначе    //мало ли кто введет период начала больше чем период окончания 
 НомерСтроки = ТаблицаСтарая.Индекс(Стр) + 1;
 Сообщить("Ошибка в строке " + НомерСтроки + " Дата начала не может быть больше даты окончания") ;
ТаблицаНовая.Очистить();
ТаблицаНовая.Загрузить(ТаблицаСтарая); //возвращаем всё как было ДО действия процедуры 
 Прервать;
 КонецЕсли;    
КонецЦикла;
Если есть вероятность что период будет больше двух месяцев (разбивать на три и больше строки), можно сообразить рекурсию
ЗЫ: Допускаю, что не въехал в вопрос. Тогда сорри )))
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9266 / 5033 / 605
Регистрация: 13.03.2013
Сообщений: 17,813
Записей в блоге: 17
28.01.2025, 06:57  [ТС]
Цитата Сообщение от polax Посмотреть сообщение
Если есть вероятность что период будет больше двух месяцев (разбивать на три и больше строки), можно сообразить рекурсию
Да, периодов может быть больше.
0
Модератор
 Аватар для Yulunga
4117 / 925 / 261
Регистрация: 22.04.2013
Сообщений: 6,503
Записей в блоге: 1
28.01.2025, 07:07
Лучший ответ Сообщение было отмечено Maks как решение

Решение

Цитата Сообщение от Maks Посмотреть сообщение
Да, периодов может быть больше.
ну наконец-то
тогда в моём варианте надо сделать цикл пока месяц даты конца больше месяц даты начала цыкл
и в цыкле вызывать процедуру, которая будут аналогичным образом добавлять одну строку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2025, 07:07
Помогаю со студенческими работами здесь

Разбивка вордового документа на части
Привет всем. У меня такая проблема: нужно уметь программно разбивать документ Word из n страниц на документы страниц по 10. Никто такого не...

Разбивка xml-документа и INSERT в базу
Помогите распарсировать xml-документ и вставить данные в таблицы, файлы программы и самого документа скидываю ссылкой, так как они довольно...

Семантическая разбивка web-документа на блоки
Доброго времени суток! Подскажите, кто сталкивался с подобным, каким образом с помощью php можно разбить html-страницу на блоки:...

Разбивка документа на разделы и куча других кодов
Листинг 1. Разбивка документа на разделы Public Sub WorkWithSections() 'В документе DocThree создаются разделы документа ...

Разбивка-форматирование документа Excel, перенос из одной строки в несколько
Доброго времени суток всем! Есть огромная необходимость в вашей помощи. Что надо: Есть исходный документ .xls Необходимо его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru