Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запись нового элемента справочника в определенную группу          
kostya77 Подменю пользователя
сообщение 29.04.24, 8:11
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 132
Спасибо сказали: 5 раз
Рейтинг: 4

Добрый день. Подскажате, как при записи нового элемента справочника, записать его в определенную группу.

Сообщение отредактировал Vofka - 29.04.24, 10:07

Gazulo Подменю пользователя
сообщение 29.04.24, 8:37
Сообщение #2

Оратор
*****
Группа: Пользователи
Сообщений: 274
Спасибо сказали: 46 раз
Рейтинг: 46

Цитата(kostya77 @ 29.04.24, 8:11) *
Добрый день. Подскажате, как при записи нового элемента справочника, записать его в определенную группу.

Добрий день.
Спр.Родитель = Родитель; не підходить?

kostya77 Подменю пользователя
сообщение 29.04.24, 8:39
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 132
Спасибо сказали: 5 раз
Рейтинг: 4

Gazulo @ Сегодня, 9:37 * ,
Элемент еще не записан

denis84 Подменю пользователя
сообщение 29.04.24, 9:00
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 438
Из: Украина
Спасибо сказали: 142 раз
Рейтинг: 142.5

kostya77 @ Сегодня, 9:39 * ,
//Данная обработка заполняет справочник Места Хранения из файла ДБФ
//******************************
Процедура Выполнить()
СпрМеста    = СоздатьОбъект("Справочник.МестаХранения");

Попытка
    ДБФ=СоздатьОбъект("XBase");
Исключение
    Предупреждение("Не удачная попытка создания файла.","!");
    Возврат;
КонецПопытки;

ДБФ.ОткрытьФайл(ИмяФайла);
Если ДБФ.Открыта()=0 тогда
    Предупреждение("Не могу открыть базу");
    Возврат;
КонецЕсли;

Если ДБФ.Открыта()=1 Тогда  
    ДБФ.ДобавитьИндекс("sklad","kod",0,0,"");
    ДБФ.СоздатьИндексныйФайл("C:\user\1c\dbf\sklad.CDX");
    ДБФ.ТекущийИндекс("sklad");
    //**устанавливаем указатель на первую запись
    ДБФ.Первая();
    Пока ДБФ.ВКонце() = 0 Цикл
        
    код  = Строка(ДБФ.KOD);
    наим = ДБФ.NAME;

    СтрокаПоиска1=Лев(код,2);
    //=================Создание групп
    Если СпрМеста.НайтиПоКоду(СтрокаПоиска1, 0)=0 Тогда
        СпрМеста.НоваяГруппа();
        СпрМеста.Код = СтрокаПоиска1;
        СпрМеста.Наименование = наим;
        СпрМеста.Записать();
    КонецЕсли;

    //=================В созданой группе создаем элементы
    СтрокаПоиска=Лев(код,4);
    Если спрМеста.НайтиПоКоду(СтрокаПоиска, 0) <> 1 Тогда
        СпрМеста.Новый();
        Босс = СоздатьОбъект("Справочник.МестаХранения");
        Босс.НайтиПоКоду(СтрокаПоиска1, 0);

        СпрМеста.Родитель     = Босс.ТекущийЭлемент();
        СпрМеста.Код          = СтрокаПоиска;
        СпрМеста.Наименование = ДБФ.Name;
        СпрМеста.ВидСклада    = Перечисление.ВидыСкладов.Оптовый;
        СпрМеста.Тип          = Перечисление.ТипыМестХранения.Склад;
        СпрМеста.Записать();
    КонецЕсли;    
    
    ДБФ.Следующая();
КонецЕсли;  

ДБФ.ЗакрытьФайл();
Предупреждение("Склады заведены!");
КонецЦикла;


Сообщение отредактировал denis84 - 29.04.24, 9:03

kostya77 Подменю пользователя
сообщение 29.04.24, 9:03
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 132
Спасибо сказали: 5 раз
Рейтинг: 4

denis84 @ Сегодня, 10:00 * ,
Мне нужно после записи элемента справочника поместить его в определенную Группу

sava1 Подменю пользователя
сообщение 29.04.24, 9:08
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2691
Из: Проскуров
Спасибо сказали: 682 раз
Рейтинг: 661

kostya77 @ Сегодня, 10:03 * ,
почему После Записи ? а не сразу - при создании?

kostya77 Подменю пользователя
сообщение 29.04.24, 9:34
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 132
Спасибо сказали: 5 раз
Рейтинг: 4

sava1 @ Сегодня, 10:08 * ,
а как при создании? Элемент создается из формы списка справочника

volodya1122 Подменю пользователя
сообщение 29.04.24, 9:53
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 339
Из: Тернопіль
Спасибо сказали: 134 раз
Рейтинг: 136.7

kostya77 @ Сегодня, 10:03 * ,
Ось код, яким я переношу записаний елелемент справочника в конкретну групу (непотрібні єлементи переношу в групу "мусор")

    клиент= ТекущийЭлемент();
    груп=СоздатьОбъект("Справочник.Контрагенти");
    ТекСпр=СоздатьОбъект("Справочник.Контрагенти");
    Если груп.найтипоКоду("__",0) =1 тогда
        Група=Груп.ТекущийЭлемент();
    ТекСпр.найтиЭлемент(клиент);
    ТекСпр.Родитель=Група;
    ТекСпр.Записать();  
    КонецЕсли;



Цитата(kostya77 @ 29.04.24, 10:34) *
а как при создании? Элемент создается из формы списка справочника


При створенні їз форми елемент справочника і так по замовчуванню створюєтьсь в тій групі яка зараз відкрита.
Звісно можна прописати щоб сворюванся в конкретній групі, незалежно від того яка зараз відкрита група. Але думаю що це неправильний підхід, так як є декілька нюансів:
1. Елемент завжди буде створюватись тільки в одній конкретній групі. А Вам думаю потрібно створювати єлементи кожен в своїй групі.
2. Після створення цей елемент, як правило потрібно зразу використати в якомусь документі. Незручно буде коли ви створили єлемент в одній групі, а знаходитесь в іншій, і небачите для вибору в документ нового створеного елемента.

Якщо всеж таки жочете реалізувати це при своренні, то це можна прописати в процедурі
Процедура ВводНового(ПризнКопирования)

kostya77 Подменю пользователя
сообщение 29.04.24, 10:01
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 132
Спасибо сказали: 5 раз
Рейтинг: 4

volodya1122 @ Сегодня, 10:53 * ,
на формі елемента є реквізит Группа. Користувач буде його заповняти "руками". Як зробити щоб єлемент записався в вибрану групу?

volodya1122 Подменю пользователя
сообщение 29.04.24, 10:20
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 339
Из: Тернопіль
Спасибо сказали: 134 раз
Рейтинг: 136.7

Цитата(kostya77 @ 29.04.24, 11:01) *
на формі елемента є реквізит Группа. Користувач буде його заповняти "руками". Як зробити щоб єлемент записався в вибрану групу?

Перевірив. Ніяк не получиться. Змінити групу таким чином неможливо. Так як при створенні єлемента він автоматично прописується в поточній групі яка зараз відкрита. І перезаписати в іншу групу таким чином неможливо (Помилка Объект заблокирован для редагування програмно - так як редагується інтерактивно).

Хоча якщо хочете заморочитись це можна зробити обманним шляхом:
при створенні відкривати не форму справочника, а звіт який імітує вігляд цього справочника і так заповнювати. І при натисненні кнопки "Записати" на формі звіту записати всі дані в справочник. Але це дуже багато потрібно переписувати

volodya1122 Подменю пользователя
сообщение 29.04.24, 16:30
Сообщение #11

Оратор
Иконка группы
Группа: Местный
Сообщений: 339
Из: Тернопіль
Спасибо сказали: 134 раз
Рейтинг: 136.7

Цитата(volodya1122 @ 29.04.24, 11:20) *
Хоча якщо хочете заморочитись це можна зробити обманним шляхом:


Реалізував простенький приклад як це можна зробити (через звіт який імітує повідінку довідника)

[необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: takefive,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.05.24, 20:43
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!