Модераторы: stron

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запись в справочник документом, 1C 
V
    Опции темы
Materium
Дата 30.1.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 4.12.2006
Где: Питер

Репутация: нет
Всего: 2



Всё оч просто. Хочу с помощью документа сделать новую запись сотрудника в справочнике.

Код

Процедура ОбработкаПроведения()

Приём=СоздатьОбъект("Справочник.Сотрудники");
Приём.Новый();
Приём.Наименование=ФИО;
Приём.Должность=Должность;
Приём.Оклад=Оклад;
Приём.ДатаПриёма=ДатаПриёма;
Приём.Записать();

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


Данная процедура не ругается, но записывает в справочник пустую строку. Подскажите почему?
Реквизиты ФИО, Должность, Оклад, ДатаПриёма берутся из табличной части ввода.
--------------------
#!sub abc {return "ok"}${&abc()}="TMTOWTDI";print "$ok";
PM MAIL   Вверх
_Valery_
Дата 30.1.2007, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 22.1.2007
Где: Москва, Вешняки

Репутация: 6
Всего: 6



Materium, некоторые реквизиты являются периодическими. К примеру, оклад и должность. Для их записи недостаточно просто операции присваивания. Надо использовать метод Установить(<Дата>,<Значение>). По идее, даже пустая строка появляться не должна, потому как непонятно на какую дату устанавливаются периодические реквизиты. Это, естественно, в том случае, если вы дописываете какую-либо из типовых конфигураций. Или у Вас самописная?...Закомментируйте Должность и Оклад и проверьте - остальные реквизиты заполнятся...?

--------------------
Ты добрый, это хорошо. Это по жизни очень пригодится...другим.
PM MAIL ICQ   Вверх
Materium
Дата 31.1.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 4.12.2006
Где: Питер

Репутация: нет
Всего: 2



Самописная конфа.
Попробую закоментировать, отпишусь позже что получилось.
--------------------
#!sub abc {return "ok"}${&abc()}="TMTOWTDI";print "$ok";
PM MAIL   Вверх
Materium
Дата 31.1.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 4.12.2006
Где: Питер

Репутация: нет
Всего: 2



_Valery_,  нет всё закоментировал кроме фио всё равно создаётся пустая строка, без фио, даты, должности и оклада!!!
--------------------
#!sub abc {return "ok"}${&abc()}="TMTOWTDI";print "$ok";
PM MAIL   Вверх
_Valery_
Дата 31.1.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 22.1.2007
Где: Москва, Вешняки

Репутация: 6
Всего: 6



 smile 
Если вышлешь md-файл, посмотрю в чем трабл...))
e-mail: [email protected]
--------------------
Ты добрый, это хорошо. Это по жизни очень пригодится...другим.
PM MAIL ICQ   Вверх
Materium
Дата 31.1.2007, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 4.12.2006
Где: Питер

Репутация: нет
Всего: 2



я отправил ))) благодарю. жду
--------------------
#!sub abc {return "ok"}${&abc()}="TMTOWTDI";print "$ok";
PM MAIL   Вверх
_Valery_
Дата 1.2.2007, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 22.1.2007
Где: Москва, Вешняки

Репутация: 6
Всего: 6



to Materium:
Получила. Посмотрела. Комментарии будут в ответном письме... smile 
--------------------
Ты добрый, это хорошо. Это по жизни очень пригодится...другим.
PM MAIL ICQ   Вверх
stron
Дата 1.2.2007, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


Профиль
Группа: Комодератор
Сообщений: 1654
Регистрация: 17.7.2003
Где: Питер

Репутация: 11
Всего: 36



Было бы здорово здесь описать решение проблемы - может ещё кому-нибудь пригодится


--------------------
подписи нет
PM ICQ   Вверх
Materium
Дата 1.2.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 4.12.2006
Где: Питер

Репутация: нет
Всего: 2



Код

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


Я вводил данные не в шапке, а в таблице, а цикл перебора строк таблицы не организовал!!! )))
Вверху правильный код!
--------------------
#!sub abc {return "ok"}${&abc()}="TMTOWTDI";print "$ok";
PM MAIL   Вверх
stron
Дата 1.2.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


Профиль
Группа: Комодератор
Сообщений: 1654
Регистрация: 17.7.2003
Где: Питер

Репутация: 11
Всего: 36



Materium, думаю Валерия заслуживает плюса  smile 


--------------------
подписи нет
PM ICQ   Вверх
Scatman
Дата 9.6.2007, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.3.2006

Репутация: нет
Всего: нет



Скажите при создании документа с таблицей тоже не чего не вставляется кроме номера документа и даты

Код

              док.Новый();
              док.УстановитьНовыйНомер("СТ-");
              док.ДатаДок = РабочаяДата();
              Для СР = 1 По КолРекв Цикл
       СтрокаАтрибут =  Сз1.ПолучитьЗначение(СчетчикРеквизитов,"");
       док.УстановитьАтрибут(Метаданные.Документ(док.Вид()).РеквизитШапки(СР).Идентификатор,СтрокаАтрибут);
             КонецЦикла;
            
             док.ЗагрузитьТабличнуюЧасть(Тз);    

Документ произвольный.
PM MAIL   Вверх
SaschaL
Дата 14.6.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Хотелось уточнить, документ создает
PM MAIL ICQ   Вверх
SaschaL
Дата 14.6.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Не могли ли вы уточнить что конкретно пытаетесь добиться данным фрагментом программного года?
PM MAIL ICQ   Вверх
Scatman
Дата 18.6.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.3.2006

Репутация: нет
Всего: нет



Мне надо написать функции по копированию всех данных из выбранного документа в новый.
Для это го я все значения реквезитов заношу в список значений а табличные части в таблицу значений. 
может кто что подскажет по этому поводу

Это сообщение отредактировал(а) Scatman - 18.6.2007, 15:39
PM MAIL   Вверх
SaschaL
Дата 19.6.2007, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Добавлено @ 06:52
Есть способ ввести на основании одного д

Добавлено @ 06:52
Есть способ ввести на основании одного документа другой
ниже пример кода:
Код

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


Добавлено @ 06:58
Подобным способом можно вводить один вид докуме

Добавлено @ 06:58
Подобным способом можно вводить один вид документа на основании нескольких видов, предварительно добавив условия для этого, если вы имели ввиду не такой способ, пишите, что нибудь придумаем.

Это сообщение отредактировал(а) stron - 19.6.2007, 14:43
PM MAIL ICQ   Вверх
Scatman
Дата 19.6.2007, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.3.2006

Репутация: нет
Всего: нет



у меня есть функция для создания нового документа 
Код

Процедура Создать(Элемент)
    спр = Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
    спр.Дата = ТекущаяДата();
    спр.Номер = "МК-00001";
    спр.Организация = "Мебельный комбинат";
                спр[ИмяРеквизита] = сз.ВыбратьЭлемент(счШапка)
    спр.Записать();
КонецПроцедуры

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

Это сообщение отредактировал(а) Scatman - 19.6.2007, 09:43
PM MAIL   Вверх
SaschaL
Дата 19.6.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



А документ каким одразом выбираешь из которого данные должны перебрасываться во вновь создаваемый?
Существует реквизит подбора, если он существет, то в качестве источника нужно указать именно документ, для позиционирования на нем. При этом можно будет выбирать по дпнной позиции реквизиты.
Может у тетя есть обработка, или выгрузи документ обработкой и вышли очень интересно посмотреть что пытаешься навоять, да и визуально как то проще уловить мысль...
PM MAIL ICQ   Вверх
Scatman
Дата 20.6.2007, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.3.2006

Репутация: нет
Всего: нет



Как зная документ, получить тип его реквизитов и, если тип объектный - получить соответствующий объект
если написать 
Тип = док.Организация.Тип
Надо что то подобное
спр = Справочник[Тип]
PM MAIL   Вверх
SaschaL
Дата 20.6.2007, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Документ можешь сохнанить как внешний отчет или обработку и прислать, я бы взланул?
Да может еще кому интерсно станет посмотреть на нестандартный подход к программированию!
PM MAIL ICQ   Вверх
Scatman
Дата 23.6.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.3.2006

Репутация: нет
Всего: нет



Найдите ошибку пожалуйста
Код

Процедура ЗагрузитьФайл(Кнопка)
    Т = Новый ТекстовыйДокумент;
    Т.Прочитать(АдресФайла);
    
    СтрокаФ = Т.ПолучитьСтроку(1);
    ДлинаСтроки = СтрДлина(СтрокаФ);
    РезультатСтрока = СтрЗаменить(СтрокаФ,", ",Символы.ПС);
    
    //создаем список значений
    Для х = 1 по СтрЧислоСтрок(РезультатСтрока) Цикл
        сз.Добавить(СтрПолучитьСтроку(РезультатСтрока,х));    
    КонецЦикла;
    
    //создаем документ который будем заполнять
    спр = Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
    
    //Получение количество реквизитов
    КолШапка =спр.Метаданные().Реквизиты.Количество();
    // Заполнение документами
    спр.Дата = ТекущаяДата();
    спр.Номер = "МК-00011";
    //------------------------------разбиение реквизитов на группы------------------------------------------//
    Для х = 0 по КолШапка-1 Цикл
        СтрТип = Строка(Спр.Метаданные().Реквизиты[х].Тип); //Получаем тип текущего реквизита
        ИмяРеквизита = спр.Метаданные().Реквизиты[х].Имя;   //Получаем имя реквезита
        
        Если Найти(стрТип,"ссылка")= 0 Тогда                //Проверяем простой или ссылочный тип 
             стрЗначение = СтрПолучитьСтроку(РезультатСтрока,(х+1)); // если простой тогда получаем значения для этого реквизита и заполняем его
             спр[ИмяРеквизита] = стрЗначение;    
        Иначе Если (Найти(стрТип,"Справочник")<>0) и (Найти(стрТип,"Документ")<>0) Тогда //Иначе проверяем на всевозможные объекты
            
              Иначе Если СтрЧислоВхождений(стрТип,",") = 0 ТОгда  //Проверяем на составной тип 
                         ТипЗначения = ТипЗнч(спр[ИмяРеквизита]);
                         докстр = Метаданные.НайтиПоТипу(ТипЗначения).ПолноеИмя();
                         докстр = СтрЗаменить(докстр,".", Символы.ПС);
                         
                         Если Найти(стрТип,"Документ") <>0 Тогда 
                              НовыйДокумент = Документы.ЗарплатаКВыплатеОрганизаций.НайтиПоНомеру(СтрПолучитьСтроку(РезультатСтрока,(х+1)));
                              спр[ИмяРеквизита] = НовыйДокумент;
                                    
                         Иначе Если Найти(стрТип,"План счетов")<>0 Тогда 
                                    НовыйПланСчетов = ПланыСчетов[СтрПолучитьСтроку(докстр,2)];
                                    стрЗначение = СтрПолучитьСтроку(РезультатСтрока,(х+1));
                                    спр[ИмяРеквизита] = НовыйПланСчетов.НайтиПоНаименованию(стрЗначение);
                                    
                               Иначе Если Найти(стрТип,"Перечисление")<>0 Тогда 
                                          НовоеПеречисление = Перечисления[СтрПолучитьСтроку(докстр,2)];
                                          кх = НовоеПеречисление.Количество();
                                          Для с=0 по кх-1 Цикл
                                              НовоеПеречислениеИмя = НовоеПеречисление.Получить(с);
                                              Если Строка(НовоеПеречислениеИмя) = СтрПолучитьСтроку(РезультатСтрока,(х+1)) ТОгда
                                                   спр[ИмяРеквизита] = НовоеПеречисление.Получить(с);
                                                   Сообщить(спр[ИмяРеквизита] + "   :" + НовоеПеречисление.Получить(с));
                                              КонецЕсли;
                                           КонецЦикла;
                                           
                                      Иначе Если Найти(стрТип,"Справочник")<>0 Тогда 
                                                НовыйСправочник = Справочники[СтрПолучитьСтроку(докстр,2)];
                                                стрЗначение = СтрПолучитьСтроку(РезультатСтрока,(х+1));
                                                спр[ИмяРеквизита] = НовыйСправочник.НайтиПоНаименованию(стрЗначение);
                                            КонецЕсли;
                                      КонецЕсли;
                                КонецЕсли;
                          КонецЕсли;
                    КонецЕсли;
              КонецЕсли;
        КонецЕсли;
    КонецЦикла;
        спр.Записать();
    КонецПроцедуры


PS только просьба не издеваться над кодом smile 
процедура должна выгружать из файла значения реквизитов и  заполнять документ. но не которые реквизиты не заполняются(или заполняются не правильно)

PM MAIL   Вверх
SaschaL
Дата 26.6.2007, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



все это интересно, фал то какого формата? Экселевкий?
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.0614 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.