imho.ws |
|
20.01.2004, 11:00 | # 1 |
Member
Регистрация: 02.12.2003
Адрес: Там где истина
Сообщения: 381
|
1С:Бухгалтерия. Вопросы и ответы
1С:Предприятие - Вопросы и ответы (1С:Бухгалтерия)
Если есть какие либо вопросы по работе с комплексом программ 1С:Предприятия, всегда готовы помочь найти ответы! Если вы просите совет, то обязательно указывайте номер релиза предприятия, а также конфигурацию и её номер релиза. Ссылки на свежие релизы и прочие запросы постить здесь!
__________________
Молчание не всегда доказывает присутствие ума, но доказывает отсутствие глупости. (с) Буаст |
10.07.2007, 16:50 | # 2961 |
Migel Mod Volos
Регистрация: 09.09.2003
Адрес: МПЛ-в почетной д
Сообщения: 7 486
|
VanHelsing, а до записи не вариант еще строку добавить?
Насколько я понял после запили объект становится ссылкой.
__________________
Все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! © Plague Небьющаяся игрушка - это игрушка, которой ребенок может разбить все свои остальные игрушки. |
10.07.2007, 16:55 | # 2962 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
|
Cartman, нет, не вариант. надо что бы можно было зайти в этот документ (например после разрыва связи) и добавить запись с товаром
1. а что когда объект становится ссылкой в него ничего добавить/удалить нельзя? 2. может есть другой вариант как сохранять документ (ведь в самой 1с я могу зайти потом в документ найдя его в журнале и добавлять/удалять записи)? зы: речь идет об 1с 8.1
__________________
|
10.07.2007, 17:44 | # 2963 |
Migel Mod Volos
Регистрация: 09.09.2003
Адрес: МПЛ-в почетной д
Сообщения: 7 486
|
Подожди, тебе надо чтобы эта процедура закончила свою работу, документ можно было открыть, посмотреть/отредактировать, а потом снова запускать эту процедуру?
Если так - тебе надо найти свой документ. Я бы сделал в форме поле с выбором документа, типа если пустое - создаешь новый, если заполнено - пишешь в него. Объект получаешь типа так: заказПокупателя = НаименованиеПоля.ПолучитьОбъект();
__________________
Все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! © Plague Небьющаяся игрушка - это игрушка, которой ребенок может разбить все свои остальные игрушки. |
10.07.2007, 19:29 | # 2964 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
|
не очень понял. я сам веб-дизайном занимаюсь, потому у меня проблема с 1с (только изучать начал). мне надо найти документ, например по номеру. как номер получить я потом голову забивать буду. потом открыть его, добавить строку и снова сохранить. пошел пока читать что делает ПолучитьОбъект()...
__________________
|
10.07.2007, 19:39 | # 2965 |
Migel Mod Volos
Регистрация: 09.09.2003
Адрес: МПЛ-в почетной д
Сообщения: 7 486
|
Ну вот так например
Док = Неопределено; Док = Документы.ТутТвойТипДокумента.Выбрать(ДатаНач,ДатаКон); Пока Док.Следующий() Цикл Если Док.Номер = "0000001" Тогда //номер твой ествественно Док.ПолучитьОбъект(); //Тут операции с Док типа добавления строки и т.д. КонецЕсли; Прервать; //Ну типа чтоб цикл дальше не крутился КонецЦикла; А, можно проще, че-то я гоню... Док = Документы.ТутТвойТипДокумента; Док.НайтиПоНомеру("00000001"); Док.ПолучитьОбъект();
__________________
Все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! © Plague Небьющаяся игрушка - это игрушка, которой ребенок может разбить все свои остальные игрушки. Последний раз редактировалось Cartman; 10.07.2007 в 19:42. |
10.07.2007, 19:52 | # 2966 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
|
метод объекта не обнаружен получить объект
а добавлять строку я смогу так же типа новаяСтрока=заказПокупателя.товары.добавить(); // ? видимо делаю че не так: заказПокупателя=документы.заказПокупателя; заказПокупателя.НайтиПоНомеру("00000046"); заказПокупателя.ПолучитьОбъект(); новаяСтрока = заказПокупателя.товары.добавить(); новаяСтрока.номенклатура=справочники.номенклатура.найтиПоКоду("15070") ; единица=справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт."); новаяСтрока.ЕдиницаИзмерения=единица; новаяСтрока.цена=12.20; новаяСтрока.количество=70; новаяСтрока.сумма=12.20*70; не работает. ругается на ПолучитьОбъект(); так ругается, что слишком много фактических параметров: заказПокупателя=документы.заказПокупателя.найтиПоНомеру(00000046); заказПокупателя.получитьОбъект(00000046); новаяСтрока = заказПокупателя.товары.добавить(); новаяСтрока.номенклатура=справочники.номенклатура.найтиПоКоду("15070") ; единица=справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт."); новаяСтрока.ЕдиницаИзмерения=единица; новаяСтрока.цена=12.20; новаяСтрока.количество=70; новаяСтрока.сумма=12.20*70; так ругается, что элемент не выбран: заказПокупателя=документы.заказПокупателя.найтиПоНомеру(00000046); заказПокупателя.получитьОбъект(); новаяСтрока = заказПокупателя.товары.добавить(); новаяСтрока.номенклатура=справочники.номенклатура.найтиПоКоду("15070") ; единица=справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт."); новаяСтрока.ЕдиницаИзмерения=единица; новаяСтрока.цена=12.20; новаяСтрока.количество=70; новаяСтрока.сумма=12.20*70; а так: Док = Документы.заказПокупателя; Док.НайтиПоНомеру("00000046"); Док.ПолучитьОбъект(); {Форма.ФормаДокумента(67)}: Метод объекта не обнаружен (ПолучитьОбъект) Док.ПолучитьОбъект(); сорри, за тупость
__________________
Последний раз редактировалось VanHelsing; 11.07.2007 в 09:24. |
11.07.2007, 12:35 | # 2967 |
::VIP::
Регистрация: 03.11.2004
Адрес: Москва, Россия
Пол: Male
Сообщения: 982
|
Кто-нибудь знает, как можно в типовой 1С Бухгалтерии 8.0 отразить в авансовом отчете факт приобретения билетов + сдачи этих билетов назад в кассу?
Проблема в том, что на закладке "Прочее" в документе "Авансовый отчет" нельзя ввести отрицательные суммы... |
11.07.2007, 12:55 | # 2970 |
Migel Mod Volos
Регистрация: 09.09.2003
Адрес: МПЛ-в почетной д
Сообщения: 7 486
|
VanHelsing, Может и не надо объект получать, может оно уже является объектом.
Метод точно нужен в случае с выборкой, а при найти может и не нужен.
__________________
Все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! © Plague Небьющаяся игрушка - это игрушка, которой ребенок может разбить все свои остальные игрушки. |
11.07.2007, 12:59 | # 2971 |
Full Member
Регистрация: 18.09.2003
Адрес: Новосибирск
Пол: Male
Сообщения: 616
|
2 VanHelsing
Если еще актуально, то вот нужный тебе код: Код:
Док = Документы.ЗаказПокупателя.НайтиПоНомеру("00001"); Если Док <> Неопределено Тогда оДок = Док.ПолучитьОбъект(); стр = оДок.Товары.Добавить(); ... оДок.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли;
__________________
Forza Juve! |
11.07.2007, 13:09 | # 2972 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
|
Flegg, очень актуально. на твой код сказала:
{Форма.ФормаДокумента(67)}: Ошибка при вызове метода контекста (ПолучитьОбъект): Элемент не выбран! оДок = Док.ПолучитьОбъект(); по причине: Элемент не выбран! Cartman, при найти он не работает с ним. нет объекта комментарий, товары и т.п. я уже запарился инет рыть при найти: Док = Документы.ЗаказПокупателя.НайтиПоНомеру("00000046"); новаяСтрока = Док.Товары.Добавить(); новаяСтрока.номенклатура=справочники.номенклатура.найтиПоКоду("15070") ; единица=справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт."); новаяСтрока.ЕдиницаИзмерения=единица; новаяСтрока.цена=12.20; новаяСтрока.количество=70; новаяСтрока.сумма=12.20*70; Док.Записать(РежимЗаписиДокумента.Проведение); {Форма.ФормаДокумента(73)}: Метод объекта не обнаружен (Записать) Док.Записать(РежимЗаписиДокумента.Проведение);
__________________
Последний раз редактировалось VanHelsing; 11.07.2007 в 13:18. |
11.07.2007, 13:18 | # 2973 |
Migel Mod Volos
Регистрация: 09.09.2003
Адрес: МПЛ-в почетной д
Сообщения: 7 486
|
VanHelsing, делай выборкой, так работает у меня по крайней мере...
__________________
Все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! © Plague Небьющаяся игрушка - это игрушка, которой ребенок может разбить все свои остальные игрушки. |
11.07.2007, 13:27 | # 2974 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
|
Cartman, вот так:
Док = Неопределено; Док = Документы.заказПокупателя.Выбрать("20070709","20070709"); Пока Док.Следующий() Цикл Если Док.Номер = "00000046" Тогда //номер твой ествественно Док.ПолучитьОбъект(); //Тут операции с Док типа добавления строки и т.д. новаяСтрока = док.товары.добавить(); новаяСтрока.номенклатура=справочники.номенклатура.найтиПоКоду("15070") ; единица=справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт."); новаяСтрока.ЕдиницаИзмерения=единица; новаяСтрока.цена=12.20; новаяСтрока.количество=70; новаяСтрока.сумма=12.20*70; КонецЕсли; Прервать; //Ну типа чтоб цикл дальше не крутился КонецЦикла; не ругается что не выбран элемент. но и строка в док-те не появляется. а док.записать() не канает, говорит, что нет такого "записать"
__________________
Последний раз редактировалось VanHelsing; 11.07.2007 в 13:32. |
11.07.2007, 13:32 | # 2976 |
Full Member
Регистрация: 18.09.2003
Адрес: Новосибирск
Пол: Male
Сообщения: 616
|
2 VanHelsing
Ошибся малость. Ошибка возникает в том случае, если не находит докумнет с нужным номером. Код:
Док = Документы.ЗаказПокупателя.НайтиПоНомеру("00001"); Если Док <> Неопределено И НЕ Док.Пустая() Тогда оДок = Док.ПолучитьОбъект(); стр = оДок.Товары.Добавить(); ... оДок.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли;
__________________
Forza Juve! |
11.07.2007, 13:38 | # 2977 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
|
Flegg, не ругнулась на сей раз:
Док = Документы.ЗаказПокупателя.НайтиПоНомеру("00000046"); Если Док <> Неопределено И НЕ Док.Пустая() Тогда оДок = Док.ПолучитьОбъект(); новаяСтрока = оДок.Товары.Добавить(); // ... новаяСтрока.номенклатура=справочники.номенклатура.найтиПоКоду("15070") ; единица=справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт."); новаяСтрока.ЕдиницаИзмерения=единица; новаяСтрока.цена=12.20; новаяСтрока.количество=70; новаяСтрока.сумма=12.20*70; оДок.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; но и ничего не добавила. а номер документа 100% 00000046 попробовал так: Док = Документы.ЗаказПокупателя.НайтиПоНомеру("00000046"); Если Док <> Неопределено И НЕ Док.Пустая() Тогда оДок = Док.ПолучитьОбъект(); сообщить (оДок.комментарий); КонецЕсли; она ничего не сообщила. т.е. выходит, как бы у меня нет такого дока. хз
__________________
|
11.07.2007, 14:01 | # 2978 |
Full Member
Регистрация: 18.09.2003
Адрес: Новосибирск
Пол: Male
Сообщения: 616
|
2 VanHelsing
У метода НайтиПоНомеру есть второй параметр "Дата". Параметр используется для документов с периодической нумерацией. Так что строка должна выглядеть примерно так: Док = Документы.ЗаказПокупателя.НайтиПоНомеру("00000046",'20070101');
__________________
Forza Juve! |
11.07.2007, 14:35 | # 2979 |
Junior Member
Регистрация: 18.04.2005
Сообщения: 157
|
Flegg, вот это реально заработало. сенкс. был бы новосибирск в соседнем районе, угостил бы гинесом. а так тока в репутацию
1. может как-то можно когда док-т создаешь, получить его номер (дата ясно как получить), тогда бы не пришлось листать журнал документов для посиска. нашел только как задать номер 2. если кто подскажет как получить список товаров из документа (заказПокупателя) буду признателен.
__________________
Последний раз редактировалось VanHelsing; 12.07.2007 в 10:11. |
12.07.2007, 13:44 | # 2980 |
Full Member
Регистрация: 18.09.2003
Адрес: Новосибирск
Пол: Male
Сообщения: 616
|
2 VanHelsing
1. Если нужно получить номер документа до его записи, то используй метод УстановитьНовыйНомер(<Префикс>), ну а дальше Док.Номер 2. Массив ссылок на номеклатуру из табличной части можно получить через Док.Товары.ВыгрузитьКолонку("Номенклатура");
__________________
Forza Juve! |
Теги (метки) |
1с бухгалтерия, 1с предприятие |
|
|