Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Проблема с работой таблицы значений

Finansov
читатель
офлайн
Дата регистрации: 25.10.2005
Сообщений: 26
Пост №1
 
24.02.2006 10:14

"Работаю в Аналит: Аптека 5.0 проф. релиз 4.08, в прайс лист попросили вставить дополнительное поле "Срок годности". Казалось бы чего проще, написал модуль, но вот в чем загвозка, почему то на некоторые товары модуль не срабатывает. Перепробовал казалось бы все...Может что то не так сделал..Подскажи те плиз...
Функция ВывестиГоденДо()

Партия = СоздатьОбъект("Справочник.Партии");
Таб = СоздатьОбъект("ТаблицаЗначений");
Таб.НоваяКолонка("Наименование",,,,,,,);
Таб.НоваяКолонка("ГоденДо","Дата",,,,,"Дата",);
Таб.НоваяКолонка("Остаток",,,,,,,);

Партия.ИспользоватьВладельца(Товар.ТекущийЭлемент());

Партия.ВыбратьЭлементы();
Пока Партия.ПолучитьЭлемент() = 1 Цикл
      Если Партия.Владелец.Наименование = Товар.Наименование Тогда
      Если (Регистр.ОстаткиТоваров.СводныйОстаток(Партия.Владелец,,Партия.ТекущийЭлемент),"Остаток") > 0) и (Партия.ПометкаУдаления() = 0) Тогда
Таб.НоваяСтрока();
Таб.Наименование = Партия.Владелец.Наименование;
Таб.ГоденДо = Партия.ГоденДо;
Таб.Остаток = Регистр.ОстаткиТоваров.СводныйОстатокПартия.Владелец,,Партия.ТекущийЭлемент(),"Остаток")
Иначе
Таб.НоваяСтрока();
Таб.Наименование = Партия.Владелец.Наименование;
Таб.ГоденДо = 0;
Таб.Остаток = Регистр.ОстаткиТоваров.СводныйОстаток(Партия.Владелец,,Партия.ТекущийЭлемент(),"Остаток")

КонецЕсли;
КонецЕсли;
КонецЦикла;

Таб.Сортировать("ГоденДо");
Таб.ВыбратьСтроки();
Пока Таб.ПолучитьСтроку() = 1 Цикл
Если Таб.Остаток <= 0 Тогда
       Если Таб.КоличествоСтрок() > 1 Тогда
              Таб.УдалитьСтроку();
КонецЕсли;
КонецЕсли;
КонецЦикла;

Таб.ПолучитьСтрокуПоНомеру(1);
Возврат Формат(Таб.ГоденДо,"ДДД.ММ.ГГ");
КонецФункции

Вообщем нужно, чтобы если нулевой остаток по складу он не выбирал "Срок годности", если же существует несколько партий товаов, тогда нужно выбрать наиболее ранний и показать его.
"

Finansov
читатель
офлайн
Дата регистрации: 25.10.2005
Сообщений: 26
Пост №2
 
24.02.2006 11:31

"Перед
Таб.Сортировать("ГоденДо");

Поставил Таб.Свернуть("ГоденДо");

И получилось!!!:-)"

Daedal
читатель
офлайн
Дата регистрации: 20.09.2004
Сообщений: 632
Пост №3
 
26.02.2006 06:03

"Следующий кусок кода не корректен:

Таб.Сортировать("ГоденДо");
Таб.ВыбратьСтроки();
Пока Таб.ПолучитьСтроку() = 1 Цикл
Если Таб.Остаток <= 0 Тогда
       Если Таб.КоличествоСтрок() > 1 Тогда
             Таб.УдалитьСтроку();
КонецЕсли;
КонецЕсли;
КонецЦикла;
//----------------------------------------------------
Если нужно выбрать самый ранний срок, то делаем так:

Таб.Сортировать("ГоденДо");
Таб.ВыбратьСтроки();
Пока Таб.ПолучитьСтроку() = 1 Цикл
Если Таб.Остаток > 0 Тогда
       возврат(.....); // Выход с возвращением самой ранней даты
КонецЕсли;
КонецЦикла;
// Если мы здесь, то либо нет товара, либо его остаток = 0
"

Finansov
читатель
офлайн
Дата регистрации: 25.10.2005
Сообщений: 26
Пост №4
 
27.02.2006 10:55

"Дело в том, что почему то со всеми значениями не работает, некоторорые значения не берет. А вот как я сделал все работатет
Таб.Свернуть("ГоденДо",);
Таб.Сортировать("ГоденДо");
Таб.ВыбратьСтроки();
Пока Таб.ПолучитьСтроку() = 1 Цикл
       Если Таб.ГоденДо = 0 Тогда
             Если Таб.КоличествоСтрок() > 1 Тогда
                  Таб.УдалитьСтроку();
             КонецЕсли;
       КонецЕсли;
КонецЦикла;

Таб.ПолучитьСтрокуПоНомеру(1);
Возврат Формат(Таб.ГоденДо,"ДДД.ММ.ГГ");

Теперь вот возник другой вопрос:
- Можно ли изменить чвет шрифта, или фона ячейки, если дата срока годности близиться к завершению.
"

Finansov
читатель
офлайн
Дата регистрации: 25.10.2005
Сообщений: 26
Пост №5
 
27.02.2006 11:24

Дело в том, что почему то со всеми значениями не работает, некоторорые значения не берет. --- Забираю свои слова назад!!! Все работает и так как мне предложили..и как сделал я....Большое спасибо!!!!

Daedal
читатель
офлайн
Дата регистрации: 20.09.2004
Сообщений: 632
Пост №6
 
27.02.2006 11:26

"Можно. Смотрите в сторону секций и областей таблицы

вместо: таб.ВывестиСекцию("имя_1")
используем:
В секции задаём имена областям (Гл. меню -> Таблица -> имена)

ск = таб.ПолучитьСекцию("имя_1")
обл = таб.имя_области;
а далее с областью делай всё что душе угодно.
потом: таб.ВывестиСекцию(ск);
"

Finansov
читатель
офлайн
Дата регистрации: 25.10.2005
Сообщений: 26
Пост №7
 
27.02.2006 14:04

На сколько я понял это применяется при печати отчетов..а мне нужно сдесь же в справочнике...или я что то не так понял?

Finansov
читатель
офлайн
Дата регистрации: 25.10.2005
Сообщений: 26
Пост №8
 
28.02.2006 18:17

Я нашел решение этой проблемы..всем спасибо!!!

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • ЕГАИС
Предложения партнеров
Обучение пользователей продуктов 1С

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги