Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Срочно нужна помощь по номенклатуре!!!
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
shiller
Срочно надо добавить виды цен в справочник номенклатура, в 1с 8.0. Пример: Артикул\Наименование\Единица измерения\Ставка НДС\РозничнаяЦена\ЗакупочнаяЦена.
Если кто разберается, очень нужно.... За мной не заржавеет )
Отпишитесь сюда, либо на мыло shiller@list.ru.
Огромное спасибо заранее.
Batchir
Если речь идет о форме списка, то можно добавить две константы с нужными типами цен, добавить в форму списка две колонки и при получении данных в форме списка получать цены из регистра в котором они хранятся.
MATEVI
Цитата(shiller @ 06.07.09, 18:09) необходимо зарегистрироваться для просмотра ссылки
Срочно надо добавить виды цен в справочник номенклатура, в 1с 8.0. Пример: Артикул\Наименование\Единица измерения\Ставка НДС\РозничнаяЦена\ЗакупочнаяЦена.
Если кто разберается, очень нужно.... За мной не заржавеет )
Отпишитесь сюда, либо на мыло shiller@list.ru.
Огромное спасибо заранее.





//Это в форме списка. Но я ставил не в колонку а в низ формы.
//И цена меняется при переходе по строкам.
Процедура СписокПриАктивизацииСтроки(Элемент)
ТипЦенПродажи = СтруктураУчетнойПолитики.ОсновнаяЦенаРеализации.Ссылка;
ЭлементыФормы.ПолеВводаЦена.Значение=РасчетОстатков.ОтображениеЦенТоваровИУслуг(
ЭлементыФормы.Список.ТекущиеДанные.Ссылка,ТипЦенПродажи);
КонецПроцедуры


//и общий модуль
Функция ОтображениеЦенТоваровИУслуг(ТекНоменклатура,ТекТипЦен) Экспорт
Цена=0;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Номенклатура,
| ЦеныНоменклатурыСрезПоследних.ТипЦен,
| ЦеныНоменклатурыСрезПоследних.Валюта,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.Номенклатура.ЭтоГруппа = 0
| И ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";

Запрос.УстановитьПараметр("Номенклатура", ТекНоменклатура);
Запрос.УстановитьПараметр("ТипЦен", ТекТипЦен);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаЗапроса = РезультатЗапроса.Выбрать();
Если ВыборкаЗапроса.Следующий() Тогда
Цена=ВыборкаЗапроса.Цена;
КонецЕсли;
Возврат Цена

КонецФункции // ОтображениеЦенТоваровИУслуг()

У меня работает.
ЗЫ Критика принимается так как только учусь...
shiller
Цитата(Batchir @ 06.07.09, 18:16) необходимо зарегистрироваться для просмотра ссылки
Если речь идет о форме списка, то можно добавить две константы с нужными типами цен, добавить в форму списка две колонки и при получении данных в форме списка получать цены из регистра в котором они хранятся.

Именно о б этом...а если можно поподробней. Куда и что добавлять, и главное как прописать чтоб потом в номенклатура/действия/настройка списка.. появились забитый мною тип цены...
shiller
Цитата(MATEVI @ 06.07.09, 18:22) необходимо зарегистрироваться для просмотра ссылки
//Это в форме списка. Но я ставил не в колонку а в низ формы. И цена меняется при переходе по строкам.


Процедура СписокПриАктивизацииСтроки(Элемент)
ТипЦенПродажи = СтруктураУчетнойПолитики.ОсновнаяЦенаРеализации.Ссылка;
ЭлементыФормы.ПолеВводаЦена.Значение=РасчетОстатков.ОтображениеЦенТоваровИУслуг(
ЭлементыФормы.Список.ТекущиеДанные.Ссылка,ТипЦенПродажи);
КонецПроцедуры

Вставляю полностью весь код, при сохранении выдает :{Справочник.Номенклатура.Форма.ФормаСписка(444,58)}: Обнаружено логическое завершение исходного текста модуля
ЭлементыФормы.Список.ТекущиеДанные.Ссылка,ТипЦенПродажи);<<?>>


Второй код естессно пока не трогал.
MATEVI
Цитата(shiller @ 06.07.09, 20:06) необходимо зарегистрироваться для просмотра ссылки
Вставляю полностью весь код, при сохранении выдает :{Справочник.Номенклатура.Форма.ФормаСписка(444,58)}: Обнаружено логическое завершение исходного текста модуля
ЭлементыФормы.Список.ТекущиеДанные.Ссылка,ТипЦенПродажи);<<?>>


Второй код естессно пока не трогал.


Я добавлял константы "ОсновнаяЦенаРеализации" и "ОсновнаяЦенаЗакупки" как и советовал Batchir. Затем значение ты и получаешь и получаешь из Структуры учетной политики.

И еще раз предупреждаю что в данном случае выкрутился из положения smile.gif Работать то оно будет ... Но мне тоже интересно правильно или нет так делать. И вообще где то читал что 1С не рекомендует такие вещи на форме списка справочника. Но а что делать если клиент хочет 09000000.gif
ЗЫ Но помню сколько сам "долбался" что бы реализовать то что когда то делалось одной строчкой...
shiller
Цитата(MATEVI @ 06.07.09, 20:33) необходимо зарегистрироваться для просмотра ссылки
Я добавлял константы "ОсновнаяЦенаРеализации" и "ОсновнаяЦенаЗакупки" как и советовал Batchir. Затем значение ты и получаешь и получаешь из Структуры учетной политики.

И еще раз предупреждаю что в данном случае выкрутился из положения smile.gif Работать то оно будет ... Но мне тоже интересно правильно или нет так делать. И вообще где то читал что 1С не рекомендует такие вещи на форме списка справочника. Но а что делать если клиент хочет 09000000.gif
ЗЫ Но помню сколько сам "долбался" что бы реализовать то что когда то делалось одной строчкой...

Если не сложно, можешь выслать на мыло базу с переделанной номенклатурой. У меня послезавтра ппц на работе произойдет, нас перевели на восьмерку, очень резво, а директору до фени все было, и чтоб не платить оставалась 7.7...после приезда послезаврашнего начальства, я думаю буду искать работу )...
На всякий повторю : shiller@list.ru
Batchir
1С не рекомендует, т.к. подобные фишки тормозят работу со списком, если клиент хочет, то ...

Рассмотрю пример только на одном типе цен для конфигурации УТ
1. Добавляем константу ТипЦенЗакупочная - Тип справочник ТипыЦен
2. На форму списка добавляем колонку, задаем имя ЗакупочнаяЦена, тип число, элемент управления - Поле ввода
3. В процедуре ПриВыводеСтроки пишем код:


Запрос = Новый Запрос;
// получение цены реализовано с помощью запроса, но есть процедуры общего модуля, которые
// могут это сделать самостоятельно
ТекстЗапроса = "
|ВЫБРАТЬ ПЕРВЫЕ 1
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| ,
| Номенклатура = &Номенклатура
| И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
|";


Запрос.УстановитьПараметр("Номенклатура", ДанныеСтроки.Ссылка);
Запрос.УстановитьПараметр("ТипЦен", Константы.ТипЦенЗакупочная.Получить());

Запрос.Текст = ТекстЗапроса;
РЗ = Запрос.Выполнить();
Выборка = РЗ.Выбрать();
ЗакупочнаяЦена = 0;
Пока Выборка.Следующий() Цикл
ЗакупочнаяЦена = Выборка.Цена;
КонецЦикла;
ОформлениеСтроки.Ячейки.ЗакупочнаяЦена.Значение = ЗакупочнаяЦена;


Данный код можно использовать также в процедуре ПриПолученииДанных, но нужно немного модифицировать

Результат прикреплен в файле:Нажмите для просмотра прикрепленного файла
shiller
Спасибо огромное, только вот не могу найти процедуру ПриВыводеСтроки... У меня "Процедура СписокПриАктивизацииСтроки"..это не одно и тоже???
zetovich
Цитата(shiller @ 07.07.09, 12:53) необходимо зарегистрироваться для просмотра ссылки
Спасибо огромное, только вот не могу найти процедуру ПриВыводеСтроки... У меня "Процедура СписокПриАктивизацииСтроки"..это не одно и тоже???

в свойствах табличного поля....там есть сия процедура.
нет, не одно и тоже.
shiller
А че прописывать надо в свойствах закупочной цены в графе данные???
zetovich
Цитата(shiller @ 07.07.09, 14:20) необходимо зарегистрироваться для просмотра ссылки
А че прописывать надо в свойствах закупочной цены в графе данные???

не совсем понятно где...
MATEVI
Цитата(shiller @ 07.07.09, 14:20) необходимо зарегистрироваться для просмотра ссылки
А че прописывать надо в свойствах закупочной цены в графе данные???

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

И я немного ошибся. Я не добавлял константы. А добавлял реквизиты "ОсновнаяЦенаРеализации" и "ОсновнаяЦенаЗакупки" в регистр сведений "Учетная политика".

И какая ж конфа у Вас
shiller
Вот что я имею в виду :

Версия конфига 10.2 (10.2.4.4)

И MATEVI у тебя на скрине опция "Пометить все типы цен"...у меня нет такого
Просто теперь у меня появилась ячейка в номенклатуре, с названием закупочная, но в ней ничего не происходит, и если на ней нажать два раза то вылазит во что : " {Справочник.Номенклатура.Форма.ФормаСписка(467)}: Поле объекта не обнаружено (Значение)
ОформлениеСтроки.Ячейки.ЗакупочнаяЦена.Значение = ЗакупочнаяЦена; "

И где это значение само находится чтобы его изменить я найти не могу.
MATEVI
Цитата(shiller @ 07.07.09, 17:30) необходимо зарегистрироваться для просмотра ссылки
Вот что я имею в виду :

Версия конфига 10.2 (10.2.4.4)

И MATEVI у тебя на скрине опция "Пометить все типы цен"...у меня нет такого
Просто теперь у меня появилась ячейка в номенклатуре, с названием закупочная, но в ней ничего не происходит, и если на ней нажать два раза то вылазит во что : " {Справочник.Номенклатура.Форма.ФормаСписка(467)}: Поле объекта не обнаружено (Значение)
ОформлениеСтроки.Ячейки.ЗакупочнаяЦена.Значение = ЗакупочнаяЦена; "

И где это значение само находится чтобы его изменить я найти не могу.


Ох и сложно это все smile.gif

1. Название ячейки должно быть "ЗакупочнаяЦена" а не "закупочная" И в запросе который дал Batchir ты собственно и определяешь что будет в этой ячейке...
2. Там где ты указываешь ничего ставить не надо! Посмотри внимательно на мою картинку вернее ее часть справа.
3. "у тебя на скрине опция "Пометить все типы цен"..." - это к тому что тебе надо не имеет отношения
shiller
Все. Зделал все как надо, везде все проставил. Но вот эта ошибка постоянно вылазит когда запускаешь уже в самой программе номенклатуру - {Справочник.Номенклатура.Форма.ФормаСписка(467)}: Поле объекта не обнаружено (Значение)
ОформлениеСтроки.Ячейки.ЗакупочнаяЦена.Значение = ЗакупочнаяЦена;

Че с ней делать то?
MATEVI
Цитата(shiller @ 07.07.09, 20:28) необходимо зарегистрироваться для просмотра ссылки
Все. Зделал все как надо, везде все проставил. Но вот эта ошибка постоянно вылазит когда запускаешь уже в самой программе номенклатуру - {Справочник.Номенклатура.Форма.ФормаСписка(467)}: Поле объекта не обнаружено (Значение)
ОформлениеСтроки.Ячейки.ЗакупочнаяЦена.Значение = ЗакупочнаяЦена;

Че с ней делать то?


Я честно сказать не знаю. У меня получилось и по своему и так как предложил Batchir.
Воложи может конфигурацию (*.cf) Попробую тебе помочь, если конечно кто то поопытней не подскажет в чем причина ошибки...
shiller
необходимо зарегистрироваться для просмотра ссылки
Сылка на конфиг... Посмотри, может что поймеш.
MATEVI
Цитата(shiller @ 07.07.09, 21:05) необходимо зарегистрироваться для просмотра ссылки
необходимо зарегистрироваться для просмотра ссылки
Сылка на конфиг... Посмотри, может что поймеш.

Что то я не смог загрузить твою конфигурацию ни 80 ни 8.1 даж в 8.2 попытался. Пишет что структура конфигурации не совместима с текущей версией программы... Какой релиз платформы у Вас
zetovich
друзья ,проверте наличие колнки "ЗакупочнаяЦена" в "Справочник.Номенклатура.Форма.ФормаСписка", это если Вы через "ПриВыводеСтроки" списка номенклатуры.
з.ы. число smile.gif
shiller
Цитата(zetovich @ 07.07.09, 22:22) необходимо зарегистрироваться для просмотра ссылки
з.ы. число smile.gif

Цитата(Batchir @ 06.07.09, 21:37) необходимо зарегистрироваться для просмотра ссылки
тип число...


Вот о чем это??? Где это число выбирать, я вообще не пойму. Я так думаю у меня из-за вот этого недобавленого значения выдает ошибку.
zetovich
в "Справочник.Номенклатура.Форма.ФормаСписка" добавить колонку "ЗакупочнаяЦена" тип ее "число".
в Процедуре ПривыводеСтроки:



ОформлениеСтроки.Ячейки.ЗакупочнаяЦена.Значение = ЗакупочнаяЦена;

где, ЗакупочнаяЦена предварительно получена с функции (в которой запрос по регистру "ЦеныНоменклатуры")
этоесли хотите что б в списке выводило цену
Batchir
Добавлю, чтобы определить тип нужно смотреть свойства не шапки "ЗакупочнаяЦена", а встать на поле ввода в строке и выбрать свойства.
shiller
Смотрите:
1) Создал константу
необходимо зарегистрироваться для просмотра ссылки

2)Создал колонку ЗакупочнаяЦена
необходимо зарегистрироваться для просмотра ссылки

3)Теперь вроде так...
необходимо зарегистрироваться для просмотра ссылки

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

5) Прописываю код (все верно?)
необходимо зарегистрироваться для просмотра ссылки

6)Все сохраняетсо грузится в базу, запускаю 1с и когда открываю номенклатуру выдает это:
необходимо зарегистрироваться для просмотра ссылки

ЗЫ: Ошибку кстати выдает если в номенклатуре создана група для товара или какоето наименование, попробовал на чистую базу, пустая номенклатура открывается без ошибки, а когда начинаешь создавать чтото в ней она начинает появлятся...вот так в принципе..и че делать я ни наю (
zetovich
отладчик никто еще не отменял.
посмтрите что "ОформлениеСтроки"
shiller
Цитата(zetovich @ 08.07.09, 12:58) необходимо зарегистрироваться для просмотра ссылки
отладчик никто еще не отменял.
посмтрите что "ОформлениеСтроки"

Простите..но я чет ниче не понял )
Batchir
хз, у меня получилось с первого раза. Ваш .сf загрузить не смог. такая же ошибка как и у MATEVI: структура конфигурации не совместима с текущей версией программы
zetovich
Цитата(shiller @ 08.07.09, 13:39) необходимо зарегистрироваться для просмотра ссылки
Простите..но я чет ниче не понял )

отладчиком посмотреть значение этой переменной....есть там такое куда Вы обращаетесь?
shiller
Я матрел ниче подобного не нашел...
Batchir не могли бы вы скинуть мне свой конф пустой, для 8.0...мож у мну конфиг кривой какойто... был бы очень обязан.
Batchir
делал для 8.1 - может в этом причина?
Прчем, насколько я понял, у Вас российская версия (10.2) я делал на 2.3.3.4 для Украины.
shiller
А мона сылку де скачать? Только если если мона ссылку сразу и на прогу, так как рабочюю нашел только 8.0.
shiller
Ставлю 8.1 пишет не обнаружен ключ защиты программы...че с ним делать? Хотя хасп установлен вродьбы.
Вообщем у меня уже крышу отрывает, мне завтра здавать результаты а у меня ниче не готово...ужасть.. блин, ну вышлите ктонить базу и прогу на мыло...
Batchir
shiller, если бы указали что конкретно Вам нужно, то думаю ссыли бы нашлись, а то я так понимаю Вы сами не знаете чего хотите. 32 сообщения в теме, а толком не ясно какая конфа нужна ...
shiller
Да любая. У меня 1с 8.0 , я впрочем писал уже. Пробывал ставить 8.1 , 8.2... у меня на каждой пищет на найден ключ защиты, естессно я не могу поставить ниодну из других конфигов на которые есть ссылки. Вот я и думаю что может быть сами клиенты программы которые я скачал, немножко бочинят.. Поэтому мне что небудь, у вас же работает тип цен, за который велась беседа всю эту тему... а я уже раз 10 пробовал на эту базу у меня постоянно ошибки выдает.
ЗЫ Поэтому я согласен на что угодно, главное чтобы работало!
Batchir
Файл конфигурации УТ 2.3.3.4 - необходимо зарегистрироваться для просмотра ссылки
1. Объеденить с типовой конфигурацией.
2. В режиме предприятия в константах на закладке "Печать, единицы, цены" выбрать закупочный и розничный тип цен (ОБЯЗАТЕЛЬНО, без этого не работает).
3. С помощью документов "Установка цен номенклатуры" установить закупочные и розничные цены для номенклатуры.
4. Смотреть на результат.
5. С тебя пиво icon_beer17.gif


В результате получилось это: Нажмите для просмотра прикрепленного файла
wwizard
Цитата(Batchir @ 06.07.09, 20:37) необходимо зарегистрироваться для просмотра ссылки
1С не рекомендует, т.к. подобные фишки тормозят работу со списком, если клиент хочет, то ...

Рассмотрю пример только на одном типе цен для конфигурации УТ
1. Добавляем константу ТипЦенЗакупочная - Тип справочник ТипыЦен
2. На форму списка добавляем колонку, задаем имя ЗакупочнаяЦена, тип число, элемент управления - Поле ввода
3. В процедуре ПриВыводеСтроки пишем код:
<pre><code class="1c">
Запрос = Новый Запрос;
// получение цены реализовано с помощью запроса, но есть процедуры общего модуля, которые
// могут это сделать самостоятельно
ТекстЗапроса = "
|ВЫБРАТЬ ПЕРВЫЕ 1
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| ,
| Номенклатура = &Номенклатура
| И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
|";


Запрос.УстановитьПараметр("Номенклатура", ДанныеСтроки.Ссылка);
Запрос.УстановитьПараметр("ТипЦен", Константы.ТипЦенЗакупочная.Получить());

Запрос.Текст = ТекстЗапроса;
РЗ = Запрос.Выполнить();
Выборка = РЗ.Выбрать();
ЗакупочнаяЦена = 0;
Пока Выборка.Следующий() Цикл
ЗакупочнаяЦена = Выборка.Цена;
КонецЦикла;
ОформлениеСтроки.Ячейки.ЗакупочнаяЦена.Значение = ЗакупочнаяЦена;

</pre></code>
Данный код можно использовать также в процедуре ПриПолученииДанных, но нужно немного модифицировать

Результат прикреплен в файле:Нажмите для просмотра прикрепленного файла


У меня управление торговли 8,2 и почемуто ничего не получилась. Можно поподробнее куда зайти чтобы получилось?


Цитата(Batchir @ 09.07.09, 21:01) необходимо зарегистрироваться для просмотра ссылки
Файл конфигурации УТ 2.3.3.4 - необходимо зарегистрироваться для просмотра ссылки
1. Объеденить с типовой конфигурацией.
2. В режиме предприятия в константах на закладке "Печать, единицы, цены" выбрать закупочный и розничный тип цен (ОБЯЗАТЕЛЬНО, без этого не работает).
3. С помощью документов "Установка цен номенклатуры" установить закупочные и розничные цены для номенклатуры.
4. Смотреть на результат.
5. С Вас пиво icon_beer17.gif


В результате получилось это: Нажмите для просмотра прикрепленного файла

а можно еще раз выложить файлик, там его уже нету
Vofka
Цитата
а можно еще раз выложить файлик, там его уже нету

Нельзя!!! Правила, я смотрю вы так и не прочитали. Ну-ну. Закрыто!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.