Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 янв 2025, 07:53

Здравствуйте, уважаемые и опытные. Учебная задача такова:

Автор Новый, 20 дек 2024, 22:43

0 Пользователей и 1 гость просматривают эту тему.

Новый

Справочник(Форма: Элемента) >> имеются две команды на форме:

- первая команда Заполнить от А до Я(Массив) на

форму списка;

- вторая команда Заполнить от А до Я(Массив), но уже должен заполняться в регистр сведений и

каждая строка должная записываться в минус день(период).

Первую команду я реализовал: массив заполняется отлично и цикл для каждого тоже, все 33 буквы алфавита

передаются на ура на форму списка справочника.

Теперь вопрос, как мне по второй команде реализовать и передать весь массив, который заполняется на

форме списка справочника в регистр сведений и чтобы у каждой строки был минус день?

alexandr_ll


Новый

alexandr_ll, не получается по команде создать записи в регистры сведений, чтобы каждая строка была минус дата записи из справочника форма элемента, заполнить от А до Я последовательно я реализовал

вот этот массив, который заполняет строки формы списка справочника >> заполнить мгновенно в регистры сведений минус день каждой строки по команде на форме элемента справочника.

&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере();
Сообщить("Почти у цели!");
КонецПроцедуры

&НаСервере
Процедура Команда1НаСервере()

//Создание элементов из
НовыйЭлемент = Справочники.ЭлементыСправочника.СоздатьЭлемент();

// Заполняем массив значений
МассивЗначений = Новый Массив;
МассивЗначений.Добавить("А");
МассивЗначений.Добавить("АБ");
МассивЗначений.Добавить("АБВ");
МассивЗначений.Добавить("АБВГ");
МассивЗначений.Добавить("АБВГД");
МассивЗначений.Добавить("АБВГДЕ");
МассивЗначений.Добавить("АБВГДЕЁ");
МассивЗначений.Добавить("АБВГДЕЁЖ");
МассивЗначений.Добавить("АБВГДЕЁЖЗ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙК");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМН");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНО");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОП");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПР");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРС");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮ");
МассивЗначений.Добавить("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ");

// Обрабатываем каждое значение массива
Для каждого ЭлИзМассива Из МассивЗначений Цикл
// Создаем новый элемент для каждого значения
НовыйЭлемент = Справочники.ЭлементыСправочника.СоздатьЭлемент();
НовыйЭлемент.Наименование = ЭлИзМассива; // Устанавливаем наименование

// Записываем элемент справочника
НовыйЭлемент.Записать();
КонецЦикла;

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

Новый

alexandr_ll, как вариант можно попробовать использовать такой метод; только изменить на регистры сведений

#Область КомандыНаФормеЭлемента
&НаКлиенте
Процедура СоздатьДоговор(Команда) //>>КомандаCозданиеДоговоров

СоздатьДоговорНаСервере(); //>>Автоматическое создание кнопки(Команда)
Сообщить("Создан договор");

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

#КонецОбласти

#Область ПроцедурНаСервере   

&НаСервере
Процедура СоздатьДоговорНаСервере() //СоздатьДоговор

НовыйДоговор              = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); //>> 1.Объявляем переменную
НовыйДоговор.Владелец     = Объект.Ссылка; //>> 2.Получаем данные с помощью ссылки >> вносим в переменную свойста
НовыйДоговор.ДатаНачала   = ТекущаяДата();
НовыйДоговор.Наименование = "Основной договор"; //>> 3.Стандартная запись >> основной договор(ДоговораКонтрагентов)

НовыйДоговор.Записать(); //>> 4.Записываем полученные данные(Объект.Ссылка)

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

#КонецОбласти

antoneus

Что значит "минус день"?

И да, располагать такие кнопки в форме элемента как-то нелогично, уместнее они бы смотрелись в форме списка, например.

Новый

antoneus, исправил и расположил. Не понимаю, период подтягивается, а наименование не хочет подтягивать и записывать по команде в регистры сведений

&НаКлиенте
Процедура ЗаполнитьВРегистрыСведений(Команда)
    ЗаполнитьВРегистрыСведенийНаСервере();
    Сообщить("Почти успешно, но недостаточно");
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьВРегистрыСведенийНаСервере()
   
    НаборЗаписей = РегистрыСведений.ЭлементыСправочника.СоздатьМенеджерЗаписи();
    НаборЗаписей.Период = ТекущаяДата() - 60 * 60 * 24;
   
    НаборЗаписей.Наименование = "а";
   
    НаборЗаписей.Записать();
   
КонецПроцедуры


Новый

Оказывается, все было довольно просто, допер как реализовать :D

Теги:

Похожие темы (3)

Рейтинг@Mail.ru

Поиск