8.х Исправление ошибок в кодах в 1с

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Emiliya_Emili, 10 май 2015.

  1. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    1.Подскажите как сделать так чтобы поле сотрудник заполнялось само текущим пользователем(Для этого установлен параметр сеанса текущий пользователь)

    Вот код
    Код:
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    //Объект.Сотрудник=ПараметрыСеанса.ТекущийПользователь.Наименование;
    КонецПроцедуры


    //////////////////////////////
    2.Возможно ли добавлять товар в документ в из табличной части справочника
    В справочники "ВИДЫ СКИДОК" в табличной части содержатся товары на которые распространяется скидка


    ////////////////////
    3.в документе запись на занятия необходимо при выборе услуги указывать (помещать в реквизит Объект.КоличествоЕдиниц) ее стоимость

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

    /////////////////
    4.необходимо в справочник клиенты в поле сумма покупки поместить сумму всех покупок клиента

    Код:
    &НаСервере
    Функция ПолучитьСуммуПокупок () Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЕСТЬNULL(ПродажиКлиентам.Сумма, 0) КАК Сумма
    |ИЗ
    | РегистрНакопления.ПродажиКлиентам КАК ПродажиКлиентам
    |ГДЕ
    | ПродажиКлиентам.Клиент = &Клиент";
    Запрос.УстановитьПараметр("Клиент", Объект.Наименование);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    СуммаП=0;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    СуммаП=СуммаП+ВыборкаДетальныеЗаписи.Сумма;
    Сообщить(""+ СуммаП +"");
    КонецЦикла;
    Возврат СуммаП;
    КонецФункции
    и при каждой новой покупке ее перерасчитывать автоматически
    Код:
    &НаКлиенте
    Процедура ОбработкаЗаписиНового(НовыйОбъект, Источник, СтандартнаяОбработка)
    СуммаПокупок=ПолучитьСуммуПокупок ();
    Если СуммаПокупок < 10000 Тогда
    Объект.СкидкаКлиента=0;
    ИначеЕсли СуммаПокупок<10000 Тогда
    Объект.СкидкаКлиента=5;
    КонецЕсли;
    КонецПроцедуры
    Последнее редактирование: 10 май 2015
  2. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Я вот из этой каши ничего не понял...
  3. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    могу поподробнее с какого вопроса начать (первый уже решила)?
  4. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    А что это за конфигурация? Такое ощущение что какая то рукоблудная.

    В 2 я так и не понял зачем вам добавлять из справочника скидок позиции номенклатуры. Вы их добавляете из справочника "Номенклатура" а по справочнику "Виды скидок" вы проверяете есть ли скидка и если есть то пересчитываете цену.

    В 3 "КоличествоЕдиниц" это реквизит который содержит стоимость? А назвать его "Стоимость" или "Сумма" нельзя было? Почему он называется "КоличествоЕдиниц"?
  5. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    я пишу диплом по 1с для реальной фирмы, относительно второго вопроса, у меня в справочнике виды скидок хранится список товаров на которые распространяются условия акции, и мне надо в документе продажа со скидкой, при выборе товара выводить только те товары на которые действует акция, а они указаны в табл части справочника виды скидок
    по поводу третьего вопроса компания использует свою систему расчета и она не только в рублях, но и в единицах, которые списываются с абонемента
  6. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Что значит "в документе продажа со скидкой"?
    Есть ещё документ "Продажа без скидки"?
  7. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    да есть документ который фиксирует продажи не по акциям (продажу товаров услуг и абонементов с учетом персональной скидки)
    а документ продажа со скидкой нужен только для продажи товаров по акции
  8. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    А в одном документе сделать продажу по акции и не по акции что мешает?
  9. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    потому что мне не удобно это делать, в документе продаж итак много сведений
    --- Объединение сообщений, 10 май 2015 ---
    да и какя разница в каком документе суть в том как брать товары на которые распространяется скидка
  10. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Есть принципы и правила разработки. И "мне не удобно делать" это не правильно..
    Если вы делаете продажу то правильно делать это всё одним документом и не плодить не нужных сущностей. А то потом может получится что на каждый вид номенклатуры вы будете делать свой документ продажи... документ продажи услуг, документ продажи товаров, документ продажи товаров по акции и тд....
    Акция или скидка действуют на определённый товар или группу и действуют обычно ограниченное время. Правильнее сделать документ "Установка скидок" в котором вы устанавливаете что на какую то позицию товара действует скидка. Данные пишете в регистр сведений. Например товар: молоко, скидка: 10% период действия с 010515 по 250515.
    Затем при подборе товара в табличную часть документа реализации проверяете действует ли на данный товар в данный момент скидка и её размер и пересчитываете цену....
  11. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    вы может ответить на ПОСТАВЛЕННЫЙ вопрос или нет?
  12. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Из табличной части справочника нет. Можно наложить отбор на открываемый список номенклатуры. И в нём будут только те элементы что указаны в табличной части справочника.
  13. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    КАК ЭТО СДЕЛАТЬ?
  14. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Например можно попробовать вот так:
    В форме документа на обработчик выбора:

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

    З.Ы. И писать вопросы капсом моветон.
    --- Объединение сообщений, 10 май 2015 ---
    Если покупатель захочет купить 2 товара один со скидкой другой без скидки на него нужно будет оформить два разных документа.
    А затем он попросит напечатать ему договор, чек или ещё что нибудь. Где должны фигурировать оба товара. Тогда придётся запросом собирать по нескольким документам продажи этому клиенту.
    Последнее редактирование: 10 май 2015
  15. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    все работает, спасибо
    --- Объединение сообщений, 10 май 2015 ---
    а что делать с третьим вопросом?
    Последнее редактирование: 10 май 2015
  16. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    С 3 не знаю... суть вопроса не понятна... код не работает или что.... Если завтра будет время посмотрю....
  17. TopicStarter Overlay
    Emiliya_Emili
    Offline

    Emiliya_Emili

    Регистрация:
    10 май 2015
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    цена не подставляется при выборе услуги
  18. XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Нужно указывать стоимость или всё таки кол-во единиц?

    Код:
    Возврат ЗначенияРесурсов.КоличествоЕдиниц;
    какое значение возвращает?

Поделиться этой страницей