Имя: Пароль:
1C
1С v8
Создание группы в 8.3
0 alexsandrinia
 
25.05.15
15:05
как создать новую группу? в СП прочитал, на сервере сделал. как теперь перенести значение на клиент?
1 fisher
 
25.05.15
15:07
Почувствовал себя гусаром.
2 fisher
 
25.05.15
15:08
В общем, формулируй задачу подробно и с самого начала.
3 alexsandrinia
 
25.05.15
15:10
нужно программно создать новую группу в справочнике. как реализовать?
4 Cyberhawk
 
25.05.15
15:11
Так же, как и в 8.2, и в 8.1, и в 8.0
5 alexsandrinia
 
25.05.15
15:12
НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
                НоваяГруппа.Наименование = НазваниеЯчейки;
                НоваяГруппа.Родитель = ИмяРодителя;

такой код в УФ 8.3 не проходит, как переделать?
6 ДенисЧ
 
25.05.15
15:12
Задачу сформулируй по другому.
7 fisher
 
25.05.15
15:12
(3) Раз на сервере получается, а надо с клиента - то и первоначальный вызов должен быть на клиенте. Делаешь серверную функцию формы, которая создает группу и возвращает на неё ссылку. С клиента её вызываешь - получаешь ссылку на новосозданную группу. Ну и делай с ней что хочещь.
8 Basilio
 
25.05.15
15:12
(0) на сервере создавай. ссылку передавай на клиент, если надо.
9 aka AMIGO
 
25.05.15
15:12
(5) у тебя есть книжки - описание ВЯ ?
смотри примеры.
10 hhhh
 
25.05.15
15:13
(5) такое и в обычных формах не прокатит.
11 alexsandrinia
 
25.05.15
15:13
(7) вся загвоздка - как с клиента вызвать?
12 zak555
 
25.05.15
15:14
(5)
1. почему не подходит ?
нет только записать и скорей всего не та группа
2. про 3300 не забудь =)
13 alexsandrinia
 
25.05.15
15:14
(9) что за книги?
14 Heckfy
 
25.05.15
15:14
Что то мне подсказывает, что ТС будет достаточно что то, типа: ЭтаФорма.Список.Обновить() на клиенте после выполнения серверной части.
15 zak555
 
25.05.15
15:14
(11) с клиента вызываешь команду на сервере
16 fisher
 
25.05.15
15:14
(5) Прочитай вот эту статью: http://catalog.mista.ru/public/198766/
Всё понятно станет.
17 Heckfy
 
25.05.15
15:15
(5) НоваяГруппа.Родитель = ИмяРодителя; - Ошибка. В родителя ссылку надо передавать.
18 alexsandrinia
 
25.05.15
15:15
(12) потому что
{Форма.Форма.Форма(51,19)}: Переменная не определена (Справочники)
                НоваяГруппа = <<?>>Справочники.Номенклатура.СоздатьГруппу(); (Проверка: Тонкий клиент)
19 fisher
 
25.05.15
15:17
(18) Создание группы модуля оформляешь функцией формы с директивой &НаСервере. А вызываешь её из функции модуля с директивой &НаКлиенте.
20 fisher
 
25.05.15
15:17
Не, лучше &НаСервереБезКонтекста
21 zak555
 
25.05.15
15:18
&НаСервереБезКонтекста

Функция СоздатьГруппуНаСервере(пРодитель=Неопределено)
    НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
                НоваяГруппа.Наименование = НазваниеЯчейки;
                НоваяГруппа.Родитель = пРодитель;
    НоваяГруппа.ЗАписать();
КонецФункции


//...

ИмяРодителя = СоздатьГруппуНаСервере();
22 Heckfy
 
25.05.15
15:19
(18)
&НаКлиенте
Процедура СоздатьГруппуКлиент()
СоздатьГруппуСервер();
Элементы.Список.Обновить();
КонецПроцедуры

&НаСервере
Процедура СоздатьГруппуСервер()
НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
КонецПроцедуры


На скорую руку набросал. Как то так.....
23 Segate
 
25.05.15
15:20
Стаж: 3 года 11 месяцев 28 дней


Хммм...
24 zak555
 
25.05.15
15:20
(23) и чего ?
25 fisher
 
25.05.15
15:21
(0) Ты это, если УФ только тыкать начинаешь, то статейку-то прочитай. Кучу времени сэкономишь.
26 alexsandrinia
 
25.05.15
15:22
(25) как раз читаю...спс
27 Segate
 
25.05.15
15:22
(24) я за 3 года научился пользоваться сп...
28 zak555
 
25.05.15
15:27
(26) вот прочитай чего http://v8.1c.ru/metod/books/book.jsp?id=401

(27) у каждого свои способности
29 alexsandrinia
 
26.05.15
09:14
(21)
Переменная не определена (НазваниеЯчейки)
    Группа.Наименование = <<?>>НазваниеЯчейки; (Проверка: Сервер)

как её определить, если она определяется на клиенте?
30 Heckfy
 
26.05.15
09:22
Блин, давай уже весь код....
31 alexsandrinia
 
26.05.15
09:27
&НаСервереБезКонтекста
Функция СозданиеГруппы(пРодитель = Неопределено)
    Группа = Справочники.Номенклатура.СоздатьГруппу();
    Группа.Наименование = Ячейка;
    Группа.Родитель = пРодитель;
    Группа.Записать();
КонецФункции

&НаКлиенте
Процедура Загрузить(Команда)
        
    Файл = Новый COMОбъект("Excel.Application");
    Файл.WorkBooks.open(ЭтотОбъект.СсылкаНаФайл);
    Файл.sheets("Загрузка").Select();

    count = 0;
    //сч =
    
    КоличествоСтрок=Файл.ActiveSheet.UsedRange.Rows.Count;
    КоличествоКолонок=Файл.ActiveSheet.UsedRange.Columns.Count;
    
    ПерваяСтрока = 2;
    ПоследняяСтрока = 3;
    
    ИмяРодителя = ПолучитьРодителя();
    
    Для НомерСтроки = ПерваяСтрока По ПоследняяСтрока Цикл
        
        ОбработкаПрерыванияПользователя();
        Для сч = 3 по 8 Цикл
            
            
            Ячейка = Файл.Cells(НомерСтроки,Сч).Value;
            Если НЕ ПустаяСтрока(Ячейка) Тогда
                
                Родитель = СозданиеГруппы();
                
            Иначе
                Прервать;    
            КонецЕсли;
            ИмяРодителя = Ячейка;
        КонецЦикла;
        
        ЭтотОбъект.ТекСостояние = "Обрабатывается строка " + НомерСтроки;
        count = count + 1;
        Элементы.ПолеТекСостояние.Видимость = Истина;
        
    КонецЦикла;
    
    ЭтотОбъект.Итого = "обработано " + count + " строк";
    Элементы.ПолеИтого.Видимость = Истина;
    
    Файл.Application.Quit();

КонецПроцедуры
32 Heckfy
 
26.05.15
09:35
Все смешалось: люди, кони....

**************
           Ячейка = Файл.Cells(НомерСтроки,Сч).Value;
            Если НЕ ПустаяСтрока(Ячейка) Тогда
                ИмяРодителя = Ячейка;
                Родитель = СозданиеГруппы(,ИмяРодителя);
                
            Иначе
                Прервать;    
            КонецЕсли;
            
        КонецЦикла;
*********************


Функция СозданиеГруппы(пРодитель = Неопределено,ИмяРодителя)
    Группа = Справочники.Номенклатура.СоздатьГруппу();
    Группа.Наименование = ИмяРодителя;
    Группа.Родитель = пРодитель;
    Группа.Записать();
Возврат Группа.Ссылка;
КонецФункции
33 fisher
 
26.05.15
09:43
(29) Передать на сервер параметром функции, как одно из самых очевидных решений.